diff options
author | Lachlan McIlroy <lachlan@redback.melbourne.sgi.com> | 2008-06-22 23:23:01 -0400 |
---|---|---|
committer | Niv Sardi <xaiki@debian.org> | 2008-07-28 02:58:49 -0400 |
commit | 0ec585163ac81e329bde25fb6311a043a1c63952 (patch) | |
tree | 304193ab41f88e5d82e51053bbd7d21fbfb7a83f /fs/xfs/xfs_attr.h | |
parent | d532506cd8b59543b376e155508f88a03a81dad1 (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.h | 17 |
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 @@ | |||
38 | struct cred; | 38 | struct cred; |
39 | struct xfs_attr_list_context; | 39 | struct xfs_attr_list_context; |
40 | 40 | ||
41 | typedef int (*attrset_t)(bhv_vnode_t *, char *, void *, size_t, int); | ||
42 | typedef int (*attrget_t)(bhv_vnode_t *, char *, void *, size_t, int); | ||
43 | typedef int (*attrremove_t)(bhv_vnode_t *, char *, int); | ||
44 | typedef int (*attrexists_t)(bhv_vnode_t *); | ||
45 | |||
46 | typedef struct attrnames { | 41 | typedef 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 | ||
57 | extern struct attrnames attr_user; | 46 | extern struct attrnames attr_user; |
58 | extern struct attrnames attr_secure; | 47 | extern struct attrnames attr_secure; |
59 | extern struct attrnames attr_system; | ||
60 | extern struct attrnames attr_trusted; | 48 | extern struct attrnames attr_trusted; |
61 | extern struct attrnames *attr_namespaces[ATTR_NAMECOUNT]; | ||
62 | |||
63 | extern attrnames_t *attr_lookup_namespace(char *, attrnames_t **, int); | ||
64 | extern 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 */ |