2006-10-11 12:20:50 +04:00
/*
2006-10-11 12:20:53 +04:00
* linux / fs / ext4 / xattr_trusted . c
2006-10-11 12:20:50 +04:00
* Handler for trusted extended attributes .
*
* Copyright ( C ) 2003 by Andreas Gruenbacher , < a . gruenbacher @ computer . org >
*/
# include <linux/string.h>
# include <linux/capability.h>
# include <linux/fs.h>
2008-04-30 02:13:32 +04:00
# include "ext4_jbd2.h"
# include "ext4.h"
2006-10-11 12:20:50 +04:00
# include "xattr.h"
2015-12-02 16:44:43 +03:00
static bool
ext4_xattr_trusted_list ( struct dentry * dentry )
2006-10-11 12:20:50 +04:00
{
2015-12-02 16:44:43 +03:00
return capable ( CAP_SYS_ADMIN ) ;
2006-10-11 12:20:50 +04:00
}
static int
2015-10-04 20:18:51 +03:00
ext4_xattr_trusted_get ( const struct xattr_handler * handler ,
struct dentry * dentry , const char * name , void * buffer ,
size_t size )
2006-10-11 12:20:50 +04:00
{
2015-03-18 01:25:59 +03:00
return ext4_xattr_get ( d_inode ( dentry ) , EXT4_XATTR_INDEX_TRUSTED ,
2009-11-13 12:52:56 +03:00
name , buffer , size ) ;
2006-10-11 12:20:50 +04:00
}
static int
2015-10-04 20:18:51 +03:00
ext4_xattr_trusted_set ( const struct xattr_handler * handler ,
struct dentry * dentry , const char * name ,
const void * value , size_t size , int flags )
2006-10-11 12:20:50 +04:00
{
2015-03-18 01:25:59 +03:00
return ext4_xattr_set ( d_inode ( dentry ) , EXT4_XATTR_INDEX_TRUSTED ,
2009-11-13 12:52:56 +03:00
name , value , size , flags ) ;
2006-10-11 12:20:50 +04:00
}
2010-05-14 04:53:18 +04:00
const struct xattr_handler ext4_xattr_trusted_handler = {
2006-10-11 12:20:50 +04:00
. prefix = XATTR_TRUSTED_PREFIX ,
2006-10-11 12:20:53 +04:00
. list = ext4_xattr_trusted_list ,
. get = ext4_xattr_trusted_get ,
. set = ext4_xattr_trusted_set ,
2006-10-11 12:20:50 +04:00
} ;