mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 03:01:39 -04:00
fs/inode.c: inode_set_flags(): replace opencoded set_mask_bits()
It seems that commits5f16f3225band00a1a053eb, both with same commitlog ("ext4: atomically set inode->i_flags in ext4_set_inode_flags()") introduced the set_mask_bits API, but somehow missed not using it in ext4 in the end. Also, set_mask_bits() is used in fs quite a bit and we can possibly come up with a generic llsc based implementation (w/o the cmpxchg loop) Link: http://lkml.kernel.org/r/[email protected] Signed-off-by: Vineet Gupta <[email protected]> Reviewed-by: Anthony Yznaga <[email protected]> Cc: Alexander Viro <[email protected]> Cc: Theodore Ts'o <[email protected]> Cc: Peter Zijlstra (Intel) <[email protected]> Cc: Chris Wilson <[email protected]> Cc: Ingo Molnar <[email protected]> Cc: Jani Nikula <[email protected]> Cc: Miklos Szeredi <[email protected]> Cc: Oleg Nesterov <[email protected]> Cc: Will Deacon <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
This commit is contained in:
parent
f402cf03fc
commit
a905737fdd
1 changed files with 1 additions and 7 deletions
|
|
@ -2093,14 +2093,8 @@ EXPORT_SYMBOL(inode_dio_wait);
|
|||
void inode_set_flags(struct inode *inode, unsigned int flags,
|
||||
unsigned int mask)
|
||||
{
|
||||
unsigned int old_flags, new_flags;
|
||||
|
||||
WARN_ON_ONCE(flags & ~mask);
|
||||
do {
|
||||
old_flags = READ_ONCE(inode->i_flags);
|
||||
new_flags = (old_flags & ~mask) | flags;
|
||||
} while (unlikely(cmpxchg(&inode->i_flags, old_flags,
|
||||
new_flags) != old_flags));
|
||||
set_mask_bits(&inode->i_flags, mask, flags);
|
||||
}
|
||||
EXPORT_SYMBOL(inode_set_flags);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue