ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.6.tar.bz2
[linux-2.6.git] / fs / devpts / xattr_security.c
1 /*
2  * File: fs/devpts/xattr_security.c
3  */
4
5 #include <linux/module.h>
6 #include <linux/string.h>
7 #include <linux/fs.h>
8 #include <linux/security.h>
9 #include "xattr.h"
10
11 static size_t
12 devpts_xattr_security_list(struct dentry *dentry, char *buffer)
13 {
14         return security_inode_listsecurity(dentry, buffer);
15 }
16
17 static int
18 devpts_xattr_security_get(struct dentry *dentry, const char *name,
19                           void *buffer, size_t size)
20 {
21         if (strcmp(name, "") == 0)
22                 return -EINVAL;
23         return security_inode_getsecurity(dentry, name, buffer, size);
24 }
25
26 static int
27 devpts_xattr_security_set(struct dentry *dentry, const char *name,
28                           const void *value, size_t size, int flags)
29 {
30         if (strcmp(name, "") == 0)
31                 return -EINVAL;
32         return security_inode_setsecurity(dentry, name, value, size, flags);
33 }
34
35 struct devpts_xattr_handler devpts_xattr_security_handler = {
36         .prefix = XATTR_SECURITY_PREFIX,
37         .list   = devpts_xattr_security_list,
38         .get    = devpts_xattr_security_get,
39         .set    = devpts_xattr_security_set,
40 };