diff options
author | Theodore Ts'o <tytso@mit.edu> | 2014-03-30 10:20:01 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-04-03 12:01:04 -0700 |
commit | 0a0ae7b3fb0fb301da83f7c7da38807c76b2b869 (patch) | |
tree | 52faa63e298c6002a1dad381817389ea1f347518 /fs/afs/file.c | |
parent | a2e124daef622d8745510ab24b023027dcdc9146 (diff) |
ext4: atomically set inode->i_flags in ext4_set_inode_flags()
commit 00a1a053ebe5febcfc2ec498bd894f035ad2aa06 upstream.
Use cmpxchg() to atomically set i_flags instead of clearing out the
S_IMMUTABLE, S_APPEND, etc. flags and then setting them from the
EXT4_IMMUTABLE_FL, EXT4_APPEND_FL flags, since this opens up a race
where an immutable file has the immutable flag cleared for a brief
window of time.
Reported-by: John Sullivan <jsrhbz@kanargh.force9.co.uk>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'fs/afs/file.c')
0 files changed, 0 insertions, 0 deletions