Commit dae5f57a authored by Andreas Gruenbacher's avatar Andreas Gruenbacher Committed by Al Viro

vfs: Fix the posix_acl_xattr_list return value

When a filesystem that contains POSIX ACLs is mounted without ACL support
(-o noacl), the appropriate behavior is not to list any existing POSIX ACL
xattrs.  The return value for list xattr handlers in this case is 0, not an
error code: several filesystems that use the POSIX ACL xattr handlers do
not expect the list operation to fail.

Symlinks cannot have ACLs, so posix_acl_xattr_list will never be called for
symlinks in the first place.
Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent c361016a
...@@ -833,9 +833,7 @@ posix_acl_xattr_list(struct dentry *dentry, char *list, size_t list_size, ...@@ -833,9 +833,7 @@ posix_acl_xattr_list(struct dentry *dentry, char *list, size_t list_size,
size_t size; size_t size;
if (!IS_POSIXACL(d_backing_inode(dentry))) if (!IS_POSIXACL(d_backing_inode(dentry)))
return -EOPNOTSUPP; return 0;
if (d_is_symlink(dentry))
return -EOPNOTSUPP;
if (type == ACL_TYPE_ACCESS) if (type == ACL_TYPE_ACCESS)
xname = POSIX_ACL_XATTR_ACCESS; xname = POSIX_ACL_XATTR_ACCESS;
......
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