summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Gruenbacher <agruenba@redhat.com>2015-11-03 15:25:08 +0100
committerAl Viro <viro@zeniv.linux.org.uk>2015-11-14 02:34:28 +0100
commitdae5f57a72a6c913926cf3569edb0556a409a3df (patch)
treeb589c2ae79af8fcf8061ecde3b11aeccbbb2d22e
parentvfs: Check attribute names in posix acl xattr handers (diff)
downloadlinux-dae5f57a72a6c913926cf3569edb0556a409a3df.tar.xz
linux-dae5f57a72a6c913926cf3569edb0556a409a3df.zip
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.c4
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;