aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs/xfs_attr.h
diff options
context:
space:
mode:
authorLachlan McIlroy <lachlan@redback.melbourne.sgi.com>2008-06-22 23:23:01 -0400
committerNiv Sardi <xaiki@debian.org>2008-07-28 02:58:49 -0400
commit0ec585163ac81e329bde25fb6311a043a1c63952 (patch)
tree304193ab41f88e5d82e51053bbd7d21fbfb7a83f /fs/xfs/xfs_attr.h
parentd532506cd8b59543b376e155508f88a03a81dad1 (diff)
[XFS] Use the generic xattr methods.
Use the generic set, get and removexattr methods and supply the s_xattr array with fine-grained handlers. All XFS/Linux highlevel attr handling is rewritten from scratch and placed into fs/xfs/linux-2.6/xfs_xattr.c so that it's separated from the generic low-level code. SGI-PV: 982343 SGI-Modid: xfs-linux-melb:xfs-kern:31234a Signed-off-by: Christoph Hellwig <hch@infradead.org> Signed-off-by: Tim Shimmin <tes@sgi.com> Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
Diffstat (limited to 'fs/xfs/xfs_attr.h')
-rw-r--r--fs/xfs/xfs_attr.h17
1 files changed, 0 insertions, 17 deletions
diff --git a/fs/xfs/xfs_attr.h b/fs/xfs/xfs_attr.h
index 9b96d171b75c..c1f7d43e5ecf 100644
--- a/fs/xfs/xfs_attr.h
+++ b/fs/xfs/xfs_attr.h
@@ -38,30 +38,14 @@
38struct cred; 38struct cred;
39struct xfs_attr_list_context; 39struct xfs_attr_list_context;
40 40
41typedef int (*attrset_t)(bhv_vnode_t *, char *, void *, size_t, int);
42typedef int (*attrget_t)(bhv_vnode_t *, char *, void *, size_t, int);
43typedef int (*attrremove_t)(bhv_vnode_t *, char *, int);
44typedef int (*attrexists_t)(bhv_vnode_t *);
45
46typedef struct attrnames { 41typedef struct attrnames {
47 char * attr_name; 42 char * attr_name;
48 unsigned int attr_namelen; 43 unsigned int attr_namelen;
49 unsigned int attr_flag;
50 attrget_t attr_get;
51 attrset_t attr_set;
52 attrremove_t attr_remove;
53 attrexists_t attr_exists;
54} attrnames_t; 44} attrnames_t;
55 45
56#define ATTR_NAMECOUNT 4
57extern struct attrnames attr_user; 46extern struct attrnames attr_user;
58extern struct attrnames attr_secure; 47extern struct attrnames attr_secure;
59extern struct attrnames attr_system;
60extern struct attrnames attr_trusted; 48extern struct attrnames attr_trusted;
61extern struct attrnames *attr_namespaces[ATTR_NAMECOUNT];
62
63extern attrnames_t *attr_lookup_namespace(char *, attrnames_t **, int);
64extern int attr_generic_list(bhv_vnode_t *, void *, size_t, int, ssize_t *);
65 49
66#define ATTR_DONTFOLLOW 0x0001 /* -- unused, from IRIX -- */ 50#define ATTR_DONTFOLLOW 0x0001 /* -- unused, from IRIX -- */
67#define ATTR_ROOT 0x0002 /* use attrs in root (trusted) namespace */ 51#define ATTR_ROOT 0x0002 /* use attrs in root (trusted) namespace */
@@ -69,7 +53,6 @@ extern int attr_generic_list(bhv_vnode_t *, void *, size_t, int, ssize_t *);
69#define ATTR_SECURE 0x0008 /* use attrs in security namespace */ 53#define ATTR_SECURE 0x0008 /* use attrs in security namespace */
70#define ATTR_CREATE 0x0010 /* pure create: fail if attr already exists */ 54#define ATTR_CREATE 0x0010 /* pure create: fail if attr already exists */
71#define ATTR_REPLACE 0x0020 /* pure set: fail if attr does not exist */ 55#define ATTR_REPLACE 0x0020 /* pure set: fail if attr does not exist */
72#define ATTR_SYSTEM 0x0100 /* use attrs in system (pseudo) namespace */
73 56
74#define ATTR_KERNACCESS 0x0400 /* [kernel] iaccess, inode held io-locked */ 57#define ATTR_KERNACCESS 0x0400 /* [kernel] iaccess, inode held io-locked */
75#define ATTR_KERNOTIME 0x1000 /* [kernel] don't update inode timestamps */ 58#define ATTR_KERNOTIME 0x1000 /* [kernel] don't update inode timestamps */