diff options
author | Andreas Gruenbacher <agruenba@redhat.com> | 2015-12-02 14:44:43 +0100 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2015-12-14 01:46:12 +0100 |
commit | 764a5c6b1fa4306dd7573c1d80914254909cd036 (patch) | |
tree | 6e5ceb636c3b53cdc0994cf8c2415656e2b12e82 /fs/ext2/xattr_user.c | |
parent | ocfs2: Replace list xattr handler operations (diff) | |
download | linux-764a5c6b1fa4306dd7573c1d80914254909cd036.tar.xz linux-764a5c6b1fa4306dd7573c1d80914254909cd036.zip |
xattr handlers: Simplify list operation
Change the list operation to only return whether or not an attribute
should be listed. Copying the attribute names into the buffer is moved
to the callers.
Since the result only depends on the dentry and not on the attribute
name, we do not pass the attribute name to list operations.
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/ext2/xattr_user.c')
-rw-r--r-- | fs/ext2/xattr_user.c | 19 |
1 files changed, 3 insertions, 16 deletions
diff --git a/fs/ext2/xattr_user.c b/fs/ext2/xattr_user.c index afd45ab1218c..72a2a96d677f 100644 --- a/fs/ext2/xattr_user.c +++ b/fs/ext2/xattr_user.c @@ -10,23 +10,10 @@ #include "ext2.h" #include "xattr.h" -static size_t -ext2_xattr_user_list(const struct xattr_handler *handler, - struct dentry *dentry, char *list, size_t list_size, - const char *name, size_t name_len) +static bool +ext2_xattr_user_list(struct dentry *dentry) { - const size_t prefix_len = XATTR_USER_PREFIX_LEN; - const size_t total_len = prefix_len + name_len + 1; - - if (!test_opt(dentry->d_sb, XATTR_USER)) - return 0; - - if (list && total_len <= list_size) { - memcpy(list, XATTR_USER_PREFIX, prefix_len); - memcpy(list+prefix_len, name, name_len); - list[prefix_len + name_len] = '\0'; - } - return total_len; + return test_opt(dentry->d_sb, XATTR_USER); } static int |