forked from Minki/linux
e409de992e
Now that the xattr handler is passed to the xattr handler operations, we can use the same get and set operations for the user, trusted, and security xattr namespaces. In those namespaces, we can access the full attribute name by "reattaching" the name prefix the vfs has skipped for us. Add a xattr_full_name helper to make this obvious in the code. For the "system.posix_acl_access" and "system.posix_acl_default" attributes, handler->prefix is the full attribute name; the suffix is the empty string. Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com> Cc: Eric Van Hensbergen <ericvh@gmail.com> Cc: Ron Minnich <rminnich@sandia.gov> Cc: Latchesar Ionkov <lucho@ionkov.net> Cc: v9fs-developer@lists.sourceforge.net Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
35 lines
1.2 KiB
C
35 lines
1.2 KiB
C
/*
|
|
* Copyright IBM Corporation, 2010
|
|
* Author Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify it
|
|
* under the terms of version 2.1 of the GNU Lesser General Public License
|
|
* as published by the Free Software Foundation.
|
|
*
|
|
* This program is distributed in the hope that it would be useful, but
|
|
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
*
|
|
*/
|
|
#ifndef FS_9P_XATTR_H
|
|
#define FS_9P_XATTR_H
|
|
|
|
#include <linux/xattr.h>
|
|
#include <net/9p/9p.h>
|
|
#include <net/9p/client.h>
|
|
|
|
extern const struct xattr_handler *v9fs_xattr_handlers[];
|
|
extern const struct xattr_handler v9fs_xattr_acl_access_handler;
|
|
extern const struct xattr_handler v9fs_xattr_acl_default_handler;
|
|
|
|
extern ssize_t v9fs_fid_xattr_get(struct p9_fid *, const char *,
|
|
void *, size_t);
|
|
extern ssize_t v9fs_xattr_get(struct dentry *, const char *,
|
|
void *, size_t);
|
|
extern int v9fs_fid_xattr_set(struct p9_fid *, const char *,
|
|
const void *, size_t, int);
|
|
extern int v9fs_xattr_set(struct dentry *, const char *,
|
|
const void *, size_t, int);
|
|
extern ssize_t v9fs_listxattr(struct dentry *, char *, size_t);
|
|
#endif /* FS_9P_XATTR_H */
|