Commit 8cde9f25 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Darrick J. Wong

xfs: also remove cached ACLs when removing the underlying attr

We should not just invalidate the ACL when setting the underlying
attribute, but also when removing it.  The ioctl interface gets that
right, but the normal xattr inteface skipped the xfs_forget_acl due
to an early return.
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
parent 84fd081f
...@@ -74,10 +74,11 @@ xfs_xattr_set(const struct xattr_handler *handler, struct dentry *unused, ...@@ -74,10 +74,11 @@ xfs_xattr_set(const struct xattr_handler *handler, struct dentry *unused,
if (flags & XATTR_REPLACE) if (flags & XATTR_REPLACE)
xflags |= ATTR_REPLACE; xflags |= ATTR_REPLACE;
if (!value) if (value)
return xfs_attr_remove(ip, (unsigned char *)name, xflags); error = xfs_attr_set(ip, (unsigned char *)name,
error = xfs_attr_set(ip, (unsigned char *)name,
(void *)value, size, xflags); (void *)value, size, xflags);
else
error = xfs_attr_remove(ip, (unsigned char *)name, xflags);
if (!error) if (!error)
xfs_forget_acl(inode, name, xflags); xfs_forget_acl(inode, name, xflags);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment