ext4: compare old and new mode before setting update_mode flag

Message ID 20181117090152.29132-1-cgxu519@gmx.com
State Awaiting Upstream
Headers show
Series
  • ext4: compare old and new mode before setting update_mode flag
Related show

Commit Message

cgxu519 Nov. 17, 2018, 9:01 a.m.
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>
---
 fs/ext4/acl.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Theodore Ts'o Dec. 10, 2018, 5:25 a.m. | #1
On Sat, Nov 17, 2018 at 05:01:52PM +0800, Chengguang Xu wrote:
> 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>

Thanks, applied.

I know Jan declined the equivalent patch for ext2; but it doesn't add
_that_ much extra complexity, and ext4_mark_inode_dirty() is rather
more heavyweight than ext2_mark_inode_dirty().

						- Ted

Patch

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 @@  ext4_set_acl(struct inode *inode, struct posix_acl *acl, int type)
 		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 */);