1 // SPDX-License-Identifier: GPL-2.0 2 /* 3 * linux/fs/ext2/xattr_trusted.c 4 * Handler for trusted extended attributes. 5 * 6 * Copyright (C) 2003 by Andreas Gruenbacher, <a.gruenbacher@computer.org> 7 */ 8 9 #include "ext2.h" 10 #include "xattr.h" 11 12 static bool 13 ext2_xattr_trusted_list(struct dentry *dentry) 14 { 15 return capable(CAP_SYS_ADMIN); 16 } 17 18 static int 19 ext2_xattr_trusted_get(const struct xattr_handler *handler, 20 struct dentry *unused, struct inode *inode, 21 const char *name, void *buffer, size_t size) 22 { 23 return ext2_xattr_get(inode, EXT2_XATTR_INDEX_TRUSTED, name, 24 buffer, size); 25 } 26 27 static int 28 ext2_xattr_trusted_set(const struct xattr_handler *handler, 29 struct user_namespace *mnt_userns, 30 struct dentry *unused, struct inode *inode, 31 const char *name, const void *value, 32 size_t size, int flags) 33 { 34 return ext2_xattr_set(inode, EXT2_XATTR_INDEX_TRUSTED, name, 35 value, size, flags); 36 } 37 38 const struct xattr_handler ext2_xattr_trusted_handler = { 39 .prefix = XATTR_TRUSTED_PREFIX, 40 .list = ext2_xattr_trusted_list, 41 .get = ext2_xattr_trusted_get, 42 .set = ext2_xattr_trusted_set, 43 }; 44