11da177e4SLinus Torvalds /* 21da177e4SLinus Torvalds * linux/fs/ext2/xattr_trusted.c 31da177e4SLinus Torvalds * Handler for trusted extended attributes. 41da177e4SLinus Torvalds * 51da177e4SLinus Torvalds * Copyright (C) 2003 by Andreas Gruenbacher, <a.gruenbacher@computer.org> 61da177e4SLinus Torvalds */ 71da177e4SLinus Torvalds 8f7699f2bSAl Viro #include "ext2.h" 91da177e4SLinus Torvalds #include "xattr.h" 101da177e4SLinus Torvalds 11764a5c6bSAndreas Gruenbacher static bool 12764a5c6bSAndreas Gruenbacher ext2_xattr_trusted_list(struct dentry *dentry) 131da177e4SLinus Torvalds { 14764a5c6bSAndreas Gruenbacher return capable(CAP_SYS_ADMIN); 151da177e4SLinus Torvalds } 161da177e4SLinus Torvalds 171da177e4SLinus Torvalds static int 18d9a82a04SAndreas Gruenbacher ext2_xattr_trusted_get(const struct xattr_handler *handler, 19*b296821aSAl Viro struct dentry *unused, struct inode *inode, 20*b296821aSAl Viro const char *name, void *buffer, size_t size) 211da177e4SLinus Torvalds { 22*b296821aSAl Viro return ext2_xattr_get(inode, EXT2_XATTR_INDEX_TRUSTED, name, 231da177e4SLinus Torvalds buffer, size); 241da177e4SLinus Torvalds } 251da177e4SLinus Torvalds 261da177e4SLinus Torvalds static int 27d9a82a04SAndreas Gruenbacher ext2_xattr_trusted_set(const struct xattr_handler *handler, 28d9a82a04SAndreas Gruenbacher struct dentry *dentry, const char *name, 29d9a82a04SAndreas Gruenbacher const void *value, size_t size, int flags) 301da177e4SLinus Torvalds { 312b0143b5SDavid Howells return ext2_xattr_set(d_inode(dentry), EXT2_XATTR_INDEX_TRUSTED, name, 321da177e4SLinus Torvalds value, size, flags); 331da177e4SLinus Torvalds } 341da177e4SLinus Torvalds 35749c72efSStephen Hemminger const struct xattr_handler ext2_xattr_trusted_handler = { 361da177e4SLinus Torvalds .prefix = XATTR_TRUSTED_PREFIX, 371da177e4SLinus Torvalds .list = ext2_xattr_trusted_list, 381da177e4SLinus Torvalds .get = ext2_xattr_trusted_get, 391da177e4SLinus Torvalds .set = ext2_xattr_trusted_set, 401da177e4SLinus Torvalds }; 41