diff mbox series

ext4: compare old and new mode before setting update_mode flag

Message ID 20181117090152.29132-1-cgxu519@gmx.com
State Accepted, archived
Headers show
Series ext4: compare old and new mode before setting update_mode flag | expand

Commit Message

cgxu519 Nov. 17, 2018, 9:01 a.m. UTC
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. UTC | #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
diff mbox series

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 */);