0001
0002
0003
0004
0005
0006
0007
0008
0009 #include "ext2.h"
0010 #include "xattr.h"
0011
0012 static bool
0013 ext2_xattr_trusted_list(struct dentry *dentry)
0014 {
0015 return capable(CAP_SYS_ADMIN);
0016 }
0017
0018 static int
0019 ext2_xattr_trusted_get(const struct xattr_handler *handler,
0020 struct dentry *unused, struct inode *inode,
0021 const char *name, void *buffer, size_t size)
0022 {
0023 return ext2_xattr_get(inode, EXT2_XATTR_INDEX_TRUSTED, name,
0024 buffer, size);
0025 }
0026
0027 static int
0028 ext2_xattr_trusted_set(const struct xattr_handler *handler,
0029 struct user_namespace *mnt_userns,
0030 struct dentry *unused, struct inode *inode,
0031 const char *name, const void *value,
0032 size_t size, int flags)
0033 {
0034 return ext2_xattr_set(inode, EXT2_XATTR_INDEX_TRUSTED, name,
0035 value, size, flags);
0036 }
0037
0038 const struct xattr_handler ext2_xattr_trusted_handler = {
0039 .prefix = XATTR_TRUSTED_PREFIX,
0040 .list = ext2_xattr_trusted_list,
0041 .get = ext2_xattr_trusted_get,
0042 .set = ext2_xattr_trusted_set,
0043 };