1 | /* |
2 | * JFFS2 -- Journalling Flash File System, Version 2. |
3 | * |
4 | * Copyright © 2006 NEC Corporation |
5 | * |
6 | * Created by KaiGai Kohei <kaigai@ak.jp.nec.com> |
7 | * |
8 | * For licensing information, see the file 'LICENCE' in this directory. |
9 | * |
10 | */ |
11 | |
12 | #include <linux/kernel.h> |
13 | #include <linux/fs.h> |
14 | #include <linux/jffs2.h> |
15 | #include <linux/xattr.h> |
16 | #include <linux/mtd/mtd.h> |
17 | #include "nodelist.h" |
18 | |
19 | static int jffs2_trusted_getxattr(const struct xattr_handler *handler, |
20 | struct dentry *unused, struct inode *inode, |
21 | const char *name, void *buffer, size_t size) |
22 | { |
23 | return do_jffs2_getxattr(inode, JFFS2_XPREFIX_TRUSTED, |
24 | xname: name, buffer, size); |
25 | } |
26 | |
27 | static int jffs2_trusted_setxattr(const struct xattr_handler *handler, |
28 | struct mnt_idmap *idmap, |
29 | struct dentry *unused, struct inode *inode, |
30 | const char *name, const void *buffer, |
31 | size_t size, int flags) |
32 | { |
33 | return do_jffs2_setxattr(inode, JFFS2_XPREFIX_TRUSTED, |
34 | xname: name, buffer, size, flags); |
35 | } |
36 | |
37 | static bool jffs2_trusted_listxattr(struct dentry *dentry) |
38 | { |
39 | return capable(CAP_SYS_ADMIN); |
40 | } |
41 | |
42 | const struct xattr_handler jffs2_trusted_xattr_handler = { |
43 | .prefix = XATTR_TRUSTED_PREFIX, |
44 | .list = jffs2_trusted_listxattr, |
45 | .set = jffs2_trusted_setxattr, |
46 | .get = jffs2_trusted_getxattr |
47 | }; |
48 | |