Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v3.14-rc3 63 lines 1.7 kB view raw
1/* 2 * linux/fs/hfsplus/xattr_trusted.c 3 * 4 * Vyacheslav Dubeyko <slava@dubeyko.com> 5 * 6 * Handler for trusted extended attributes. 7 */ 8 9#include "hfsplus_fs.h" 10#include "xattr.h" 11 12static int hfsplus_trusted_getxattr(struct dentry *dentry, const char *name, 13 void *buffer, size_t size, int type) 14{ 15 char xattr_name[HFSPLUS_ATTR_MAX_STRLEN + 1] = {0}; 16 size_t len = strlen(name); 17 18 if (!strcmp(name, "")) 19 return -EINVAL; 20 21 if (len + XATTR_TRUSTED_PREFIX_LEN > HFSPLUS_ATTR_MAX_STRLEN) 22 return -EOPNOTSUPP; 23 24 strcpy(xattr_name, XATTR_TRUSTED_PREFIX); 25 strcpy(xattr_name + XATTR_TRUSTED_PREFIX_LEN, name); 26 27 return hfsplus_getxattr(dentry, xattr_name, buffer, size); 28} 29 30static int hfsplus_trusted_setxattr(struct dentry *dentry, const char *name, 31 const void *buffer, size_t size, int flags, int type) 32{ 33 char xattr_name[HFSPLUS_ATTR_MAX_STRLEN + 1] = {0}; 34 size_t len = strlen(name); 35 36 if (!strcmp(name, "")) 37 return -EINVAL; 38 39 if (len + XATTR_TRUSTED_PREFIX_LEN > HFSPLUS_ATTR_MAX_STRLEN) 40 return -EOPNOTSUPP; 41 42 strcpy(xattr_name, XATTR_TRUSTED_PREFIX); 43 strcpy(xattr_name + XATTR_TRUSTED_PREFIX_LEN, name); 44 45 return hfsplus_setxattr(dentry, xattr_name, buffer, size, flags); 46} 47 48static size_t hfsplus_trusted_listxattr(struct dentry *dentry, char *list, 49 size_t list_size, const char *name, size_t name_len, int type) 50{ 51 /* 52 * This method is not used. 53 * It is used hfsplus_listxattr() instead of generic_listxattr(). 54 */ 55 return -EOPNOTSUPP; 56} 57 58const struct xattr_handler hfsplus_xattr_trusted_handler = { 59 .prefix = XATTR_TRUSTED_PREFIX, 60 .list = hfsplus_trusted_listxattr, 61 .get = hfsplus_trusted_getxattr, 62 .set = hfsplus_trusted_setxattr, 63};