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

Configure Feed

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

at v2.6.13 67 lines 1.4 kB view raw
1#include <linux/reiserfs_fs.h> 2#include <linux/errno.h> 3#include <linux/fs.h> 4#include <linux/pagemap.h> 5#include <linux/xattr.h> 6#include <linux/reiserfs_xattr.h> 7#include <asm/uaccess.h> 8 9#define XATTR_SECURITY_PREFIX "security." 10 11static int 12security_get(struct inode *inode, const char *name, void *buffer, size_t size) 13{ 14 if (strlen(name) < sizeof(XATTR_SECURITY_PREFIX)) 15 return -EINVAL; 16 17 if (is_reiserfs_priv_object(inode)) 18 return -EPERM; 19 20 return reiserfs_xattr_get(inode, name, buffer, size); 21} 22 23static int 24security_set(struct inode *inode, const char *name, const void *buffer, 25 size_t size, int flags) 26{ 27 if (strlen(name) < sizeof(XATTR_SECURITY_PREFIX)) 28 return -EINVAL; 29 30 if (is_reiserfs_priv_object(inode)) 31 return -EPERM; 32 33 return reiserfs_xattr_set(inode, name, buffer, size, flags); 34} 35 36static int security_del(struct inode *inode, const char *name) 37{ 38 if (strlen(name) < sizeof(XATTR_SECURITY_PREFIX)) 39 return -EINVAL; 40 41 if (is_reiserfs_priv_object(inode)) 42 return -EPERM; 43 44 return 0; 45} 46 47static int 48security_list(struct inode *inode, const char *name, int namelen, char *out) 49{ 50 int len = namelen; 51 52 if (is_reiserfs_priv_object(inode)) 53 return 0; 54 55 if (out) 56 memcpy(out, name, len); 57 58 return len; 59} 60 61struct reiserfs_xattr_handler security_handler = { 62 .prefix = XATTR_SECURITY_PREFIX, 63 .get = security_get, 64 .set = security_set, 65 .del = security_del, 66 .list = security_list, 67};