summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChengguang Xu <cgxu519@gmx.com>2018-12-10 00:22:38 -0500
committerTheodore Ts'o <tytso@mit.edu>2018-12-10 00:22:38 -0500
commit0a1e8258a4fecd5aad2815b43bbe0ff014de1d8a (patch)
tree58af054e978b15445f40c660864adbd56502b734
parente647e29196b7f802f8242c39ecb7cc937f5ef217 (diff)
downloadlinux-stable-0a1e8258a4fecd5aad2815b43bbe0ff014de1d8a.tar.gz
linux-stable-0a1e8258a4fecd5aad2815b43bbe0ff014de1d8a.tar.bz2
linux-stable-0a1e8258a4fecd5aad2815b43bbe0ff014de1d8a.zip
ext4: compare old and new mode before setting update_mode flag
If new mode is the same as old mode we don't have to reset inode mode in the rest of the code, so compare old and new mode before setting update_mode flag. Signed-off-by: Chengguang Xu <cgxu519@gmx.com> Signed-off-by: Theodore Ts'o <tytso@mit.edu>
-rw-r--r--fs/ext4/acl.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/ext4/acl.c b/fs/ext4/acl.c
index c1d570ee1d9f..8c7bbf3e566d 100644
--- a/fs/ext4/acl.c
+++ b/fs/ext4/acl.c
@@ -248,7 +248,8 @@ retry:
error = posix_acl_update_mode(inode, &mode, &acl);
if (error)
goto out_stop;
- update_mode = 1;
+ if (mode != inode->i_mode)
+ update_mode = 1;
}
error = __ext4_set_acl(handle, inode, type, acl, 0 /* xattr_flags */);