From: James Simmons Date: Tue, 24 May 2016 00:35:08 +0000 (-0400) Subject: staging: lustre: llite: drop acl from cache X-Git-Tag: v4.14-rc1~2869^2~288 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b788dc51e4255b700f566a5d63a9c5028d631c77;p=platform%2Fkernel%2Flinux-rpi.git staging: lustre: llite: drop acl from cache Commit b8a7a3a6 change get_acl() for posix xattr to always cache the ACL which increases the reference count. That reference count can be reduced by have ll_get_acl() call forget_cached_acl() which it wasn't. When an inode gets deleted by Lustre the POSIX ACL reference count is tested to ensure its 1 and if not produces an error. Since forget_cached_acl() was not called Lustre started to complain. This patch changes ll_get_acl() to call forget_cached_acl(). Signed-off-by: James Simmons Reviewed-by: Andreas Gruenbacher Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/lustre/lustre/llite/file.c b/drivers/staging/lustre/lustre/llite/file.c index f47f2ac..0191945 100644 --- a/drivers/staging/lustre/lustre/llite/file.c +++ b/drivers/staging/lustre/lustre/llite/file.c @@ -3124,6 +3124,7 @@ struct posix_acl *ll_get_acl(struct inode *inode, int type) spin_lock(&lli->lli_lock); /* VFS' acl_permission_check->check_acl will release the refcount */ acl = posix_acl_dup(lli->lli_posix_acl); + forget_cached_acl(inode, type); spin_unlock(&lli->lli_lock); return acl;