diff options
author | Andreas Gruenbacher <agruenba@redhat.com> | 2015-11-03 17:25:08 +0300 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2015-11-14 04:34:28 +0300 |
commit | dae5f57a72a6c913926cf3569edb0556a409a3df (patch) | |
tree | b589c2ae79af8fcf8061ecde3b11aeccbbb2d22e | |
parent | c361016adeb5acb17a67000689602b7515930f13 (diff) | |
download | linux-dae5f57a72a6c913926cf3569edb0556a409a3df.tar.xz |
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: Andreas Gruenbacher <agruenba@redhat.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
-rw-r--r-- | fs/posix_acl.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/fs/posix_acl.c b/fs/posix_acl.c index b1a66e844d35..2fdca614ded3 100644 --- a/fs/posix_acl.c +++ b/fs/posix_acl.c @@ -833,9 +833,7 @@ posix_acl_xattr_list(struct dentry *dentry, char *list, size_t list_size, size_t size; if (!IS_POSIXACL(d_backing_inode(dentry))) - return -EOPNOTSUPP; - if (d_is_symlink(dentry)) - return -EOPNOTSUPP; + return 0; if (type == ACL_TYPE_ACCESS) xname = POSIX_ACL_XATTR_ACCESS; |