Line data Source code
1 : // SPDX-License-Identifier: GPL-2.0 2 : /* 3 : * linux/fs/ext4/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 <linux/string.h> 10 : #include <linux/capability.h> 11 : #include <linux/fs.h> 12 : #include "ext4_jbd2.h" 13 : #include "ext4.h" 14 : #include "xattr.h" 15 : 16 : static bool 17 0 : ext4_xattr_trusted_list(struct dentry *dentry) 18 : { 19 0 : return capable(CAP_SYS_ADMIN); 20 : } 21 : 22 : static int 23 0 : ext4_xattr_trusted_get(const struct xattr_handler *handler, 24 : struct dentry *unused, struct inode *inode, 25 : const char *name, void *buffer, size_t size) 26 : { 27 0 : return ext4_xattr_get(inode, EXT4_XATTR_INDEX_TRUSTED, 28 : name, buffer, size); 29 : } 30 : 31 : static int 32 0 : ext4_xattr_trusted_set(const struct xattr_handler *handler, 33 : struct mnt_idmap *idmap, 34 : struct dentry *unused, struct inode *inode, 35 : const char *name, const void *value, 36 : size_t size, int flags) 37 : { 38 0 : return ext4_xattr_set(inode, EXT4_XATTR_INDEX_TRUSTED, 39 : name, value, size, flags); 40 : } 41 : 42 : const struct xattr_handler ext4_xattr_trusted_handler = { 43 : .prefix = XATTR_TRUSTED_PREFIX, 44 : .list = ext4_xattr_trusted_list, 45 : .get = ext4_xattr_trusted_get, 46 : .set = ext4_xattr_trusted_set, 47 : };