aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/xattr.h
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2008-08-28 06:21:17 -0400
committerChris Mason <chris.mason@oracle.com>2008-09-25 11:04:07 -0400
commit95819c05732c511338b43c115ffbcee978c02888 (patch)
tree4622f326207c53e42e7c9e8e8d14960e17190a30 /fs/btrfs/xattr.h
parenteaa47d8612783807ef9703ebc9bf0d0f0455bf62 (diff)
downloadkernel_samsung_smdk4412-95819c05732c511338b43c115ffbcee978c02888.zip
kernel_samsung_smdk4412-95819c05732c511338b43c115ffbcee978c02888.tar.gz
kernel_samsung_smdk4412-95819c05732c511338b43c115ffbcee978c02888.tar.bz2
Btrfs: optimize btrget/set/removexattr
btrfs actually stores the whole xattr name, including the prefix ondisk, so using the generic resolver that strips off the prefix is not very helpful. Instead do the real ondisk xattrs manually and only use the generic resolver for synthetic xattrs like ACLs. (Sorry Josef for guiding you towards the wrong direction here intially) Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/btrfs/xattr.h')
-rw-r--r--fs/btrfs/xattr.h31
1 files changed, 10 insertions, 21 deletions
diff --git a/fs/btrfs/xattr.h b/fs/btrfs/xattr.h
index 825e55b..5b1d08f 100644
--- a/fs/btrfs/xattr.h
+++ b/fs/btrfs/xattr.h
@@ -20,31 +20,20 @@
#define __XATTR__
#include <linux/xattr.h>
-#include "ctree.h"
-/* Name indexes */
-enum {
- BTRFS_XATTR_INDEX_USER,
- BTRFS_XATTR_INDEX_POSIX_ACL_ACCESS,
- BTRFS_XATTR_INDEX_POSIX_ACL_DEFAULT,
- BTRFS_XATTR_INDEX_TRUSTED,
- BTRFS_XATTR_INDEX_SECURITY,
- BTRFS_XATTR_INDEX_SYSTEM,
- BTRFS_XATTR_INDEX_END,
-};
-
-extern struct xattr_handler btrfs_xattr_user_handler;
-extern struct xattr_handler btrfs_xattr_trusted_handler;
extern struct xattr_handler btrfs_xattr_acl_access_handler;
extern struct xattr_handler btrfs_xattr_acl_default_handler;
-extern struct xattr_handler btrfs_xattr_security_handler;
-extern struct xattr_handler btrfs_xattr_system_handler;
-
extern struct xattr_handler *btrfs_xattr_handlers[];
-ssize_t btrfs_xattr_get(struct inode *inode, int name_index, const char *name,
- void *buffer, size_t size);
-int btrfs_xattr_set(struct inode *inode, int name_index, const char *name,
- const void *value, size_t size, int flags);
+extern ssize_t __btrfs_getxattr(struct inode *inode, const char *name,
+ void *buffer, size_t size);
+extern int __btrfs_setxattr(struct inode *inode, const char *name,
+ const void *value, size_t size, int flags);
+
+extern ssize_t btrfs_getxattr(struct dentry *dentry, const char *name,
+ void *buffer, size_t size);
+extern int btrfs_setxattr(struct dentry *dentry, const char *name,
+ const void *value, size_t size, int flags);
+extern int btrfs_removexattr(struct dentry *dentry, const char *name);
#endif /* __XATTR__ */