diff options
-rw-r--r-- | fs/xattr.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/fs/xattr.c b/fs/xattr.c index 07d0e47f6a7f..4861322e28e8 100644 --- a/fs/xattr.c +++ b/fs/xattr.c | |||
@@ -940,7 +940,7 @@ ssize_t simple_xattr_list(struct inode *inode, struct simple_xattrs *xattrs, | |||
940 | bool trusted = capable(CAP_SYS_ADMIN); | 940 | bool trusted = capable(CAP_SYS_ADMIN); |
941 | struct simple_xattr *xattr; | 941 | struct simple_xattr *xattr; |
942 | ssize_t remaining_size = size; | 942 | ssize_t remaining_size = size; |
943 | int err; | 943 | int err = 0; |
944 | 944 | ||
945 | #ifdef CONFIG_FS_POSIX_ACL | 945 | #ifdef CONFIG_FS_POSIX_ACL |
946 | if (inode->i_acl) { | 946 | if (inode->i_acl) { |
@@ -965,11 +965,11 @@ ssize_t simple_xattr_list(struct inode *inode, struct simple_xattrs *xattrs, | |||
965 | 965 | ||
966 | err = xattr_list_one(&buffer, &remaining_size, xattr->name); | 966 | err = xattr_list_one(&buffer, &remaining_size, xattr->name); |
967 | if (err) | 967 | if (err) |
968 | return err; | 968 | break; |
969 | } | 969 | } |
970 | spin_unlock(&xattrs->lock); | 970 | spin_unlock(&xattrs->lock); |
971 | 971 | ||
972 | return size - remaining_size; | 972 | return err ? err : size - remaining_size; |
973 | } | 973 | } |
974 | 974 | ||
975 | /* | 975 | /* |