Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0
0002 /*
0003  * linux/fs/ext2/xattr_trusted.c
0004  * Handler for trusted extended attributes.
0005  *
0006  * Copyright (C) 2003 by Andreas Gruenbacher, <a.gruenbacher@computer.org>
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 };