1
2
3
4
5
6
7
8#include <linux/string.h>
9#include <linux/capability.h>
10#include <linux/fs.h>
11#include "ext4_jbd2.h"
12#include "ext4.h"
13#include "xattr.h"
14
15static bool
16ext4_xattr_trusted_list(struct dentry *dentry)
17{
18 return capable(CAP_SYS_ADMIN);
19}
20
21static int
22ext4_xattr_trusted_get(const struct xattr_handler *handler,
23 struct dentry *dentry, const char *name, void *buffer,
24 size_t size)
25{
26 return ext4_xattr_get(d_inode(dentry), EXT4_XATTR_INDEX_TRUSTED,
27 name, buffer, size);
28}
29
30static int
31ext4_xattr_trusted_set(const struct xattr_handler *handler,
32 struct dentry *dentry, const char *name,
33 const void *value, size_t size, int flags)
34{
35 return ext4_xattr_set(d_inode(dentry), EXT4_XATTR_INDEX_TRUSTED,
36 name, value, size, flags);
37}
38
39const struct xattr_handler ext4_xattr_trusted_handler = {
40 .prefix = XATTR_TRUSTED_PREFIX,
41 .list = ext4_xattr_trusted_list,
42 .get = ext4_xattr_trusted_get,
43 .set = ext4_xattr_trusted_set,
44};
45