From 5d0d4e6cc2f4effe8e49f59f85129b95c82c6987 Mon Sep 17 00:00:00 2001 From: Alex Zhuravlev Date: Fri, 9 Aug 2019 23:43:45 +0400 Subject: [PATCH] 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. Lustre-change: https://review.whamcloud.com/35756 Lustre-commit: 3df034f8f46b0d22829f7ac83cbf9871823c093c Signed-off-by: Alex Zhuravlev Change-Id: I468b775e13ba0f7279a6aa320983705f5e79187a Reviewed-by: Neil Brown Tested-by: James Simmons Reviewed-by: James Simmons Signed-off-by: Minh Diep Reviewed-on: https://review.whamcloud.com/35870 Tested-by: jenkins Reviewed-by: Neil Brown Tested-by: Maloo Reviewed-by: Oleg Drokin --- lustre/llite/namei.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lustre/llite/namei.c b/lustre/llite/namei.c index 91691db..f12fdbb 100644 --- a/lustre/llite/namei.c +++ b/lustre/llite/namei.c @@ -383,6 +383,9 @@ 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; } -- 1.8.3.1