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 dentry *unused, struct inode *inode, 30 const char *name, const void *value, 31 size_t size, int flags) 32 { 33 return ext2_xattr_set(inode, EXT2_XATTR_INDEX_TRUSTED, name, 34 value, size, flags); 35 } 36 37 const struct xattr_handler ext2_xattr_trusted_handler = { 38 .prefix = XATTR_TRUSTED_PREFIX, 39 .list = ext2_xattr_trusted_list, 40 .get = ext2_xattr_trusted_get, 41 .set = ext2_xattr_trusted_set, 42 }; 43