From: Alex Zhuravlev Date: Fri, 9 Aug 2019 19:43:45 +0000 (+0400) Subject: LU-12657 llite: forget cached ACLs properly X-Git-Tag: 2.12.58~63 X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=commitdiff_plain;h=3df034f8f46b0d22829f7ac83cbf9871823c093c LU-12657 llite: forget cached ACLs properly Lustre with linux-4.* fails ACL tests (e.g. sanity/103 and sanityn/25) because ll_lock_cancel_bits() does not reset i_acl and i_default_acl into initial state. use kernel's forget_all_cached_acls() to do so. Signed-off-by: Alex Zhuravlev Change-Id: I468b775e13ba0f7279a6aa320983705f5e79187a Reviewed-on: https://review.whamcloud.com/35756 Tested-by: jenkins Tested-by: Maloo Reviewed-by: Neil Brown Tested-by: James Simmons Reviewed-by: James Simmons Reviewed-by: Oleg Drokin --- diff --git a/lustre/llite/namei.c b/lustre/llite/namei.c index 30d5198..4a412cc 100644 --- a/lustre/llite/namei.c +++ b/lustre/llite/namei.c @@ -362,6 +362,9 @@ static void ll_lock_cancel_bits(struct ldlm_lock *lock, __u64 to_cancel) inode != inode->i_sb->s_root->d_inode) ll_invalidate_aliases(inode); + if (bits & (MDS_INODELOCK_LOOKUP | MDS_INODELOCK_PERM)) + forget_all_cached_acls(inode); + iput(inode); RETURN_EXIT; }