From: Chengguang Xu Date: Fri, 31 Aug 2018 14:33:48 +0000 (+0800) Subject: ext2: cache NULL when both default_acl and acl are NULL X-Git-Tag: v5.15~7701^2~5 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=59fed3bf8a461ab07a8e57b42b6402e984c7cc62;p=platform%2Fkernel%2Flinux-starfive.git ext2: cache NULL when both default_acl and acl are NULL default_acl and acl of newly created inode will be initiated as ACL_NOT_CACHED in vfs function inode_init_always() and later will be updated by calling xxx_init_acl() in specific filesystems. However, when default_acl and acl are NULL, then they keep the value of ACL_NOT_CACHED. This patch changes the code to cache NULL for acl / default_acl in this case to save unnecessary ACL lookup in future. Signed-off-by: Chengguang Xu Signed-off-by: Jan Kara --- diff --git a/fs/ext2/acl.c b/fs/ext2/acl.c index 224c04a..cf4c77f 100644 --- a/fs/ext2/acl.c +++ b/fs/ext2/acl.c @@ -256,11 +256,15 @@ ext2_init_acl(struct inode *inode, struct inode *dir) if (default_acl) { error = __ext2_set_acl(inode, default_acl, ACL_TYPE_DEFAULT); posix_acl_release(default_acl); + } else { + inode->i_default_acl = NULL; } if (acl) { if (!error) error = __ext2_set_acl(inode, acl, ACL_TYPE_ACCESS); posix_acl_release(acl); + } else { + inode->i_acl = NULL; } return error; }