Commit | Line | Data |
---|---|---|
127e5f5a VD |
1 | /* |
2 | * linux/fs/hfsplus/xattr.h | |
3 | * | |
4 | * Vyacheslav Dubeyko <slava@dubeyko.com> | |
5 | * | |
6 | * Logic of processing extended attributes | |
7 | */ | |
8 | ||
9 | #ifndef _LINUX_HFSPLUS_XATTR_H | |
10 | #define _LINUX_HFSPLUS_XATTR_H | |
11 | ||
12 | #include <linux/xattr.h> | |
13 | ||
14 | extern const struct xattr_handler hfsplus_xattr_osx_handler; | |
15 | extern const struct xattr_handler hfsplus_xattr_user_handler; | |
16 | extern const struct xattr_handler hfsplus_xattr_trusted_handler; | |
17 | /*extern const struct xattr_handler hfsplus_xattr_acl_access_handler;*/ | |
18 | /*extern const struct xattr_handler hfsplus_xattr_acl_default_handler;*/ | |
19 | extern const struct xattr_handler hfsplus_xattr_security_handler; | |
20 | ||
21 | extern const struct xattr_handler *hfsplus_xattr_handlers[]; | |
22 | ||
23 | int __hfsplus_setxattr(struct inode *inode, const char *name, | |
24 | const void *value, size_t size, int flags); | |
25 | ||
26 | static inline int hfsplus_setxattr(struct dentry *dentry, const char *name, | |
27 | const void *value, size_t size, int flags) | |
28 | { | |
29 | return __hfsplus_setxattr(dentry->d_inode, name, value, size, flags); | |
30 | } | |
31 | ||
32 | ssize_t hfsplus_getxattr(struct dentry *dentry, const char *name, | |
33 | void *value, size_t size); | |
34 | ||
35 | ssize_t hfsplus_listxattr(struct dentry *dentry, char *buffer, size_t size); | |
36 | ||
37 | int hfsplus_removexattr(struct dentry *dentry, const char *name); | |
38 | ||
39 | int hfsplus_init_security(struct inode *inode, struct inode *dir, | |
40 | const struct qstr *qstr); | |
41 | ||
42 | static inline int hfsplus_init_acl(struct inode *inode, struct inode *dir) | |
43 | { | |
44 | /*TODO: implement*/ | |
45 | return 0; | |
46 | } | |
47 | ||
48 | static inline int hfsplus_init_inode_security(struct inode *inode, | |
49 | struct inode *dir, | |
50 | const struct qstr *qstr) | |
51 | { | |
52 | int err; | |
53 | ||
54 | err = hfsplus_init_acl(inode, dir); | |
55 | if (!err) | |
56 | err = hfsplus_init_security(inode, dir, qstr); | |
57 | return err; | |
58 | } | |
59 | ||
60 | #endif |