2012-03-17 09:16:43 +04:00
# include "reiserfs.h"
2005-04-17 02:20:36 +04:00
# include <linux/errno.h>
# include <linux/fs.h>
# include <linux/pagemap.h>
# include <linux/xattr.h>
2012-03-17 08:59:06 +04:00
# include "xattr.h"
2014-08-09 01:21:12 +04:00
# include <linux/uaccess.h>
2005-04-17 02:20:36 +04:00
static int
2016-04-11 03:48:24 +03:00
user_get ( const struct xattr_handler * handler , struct dentry * unused ,
struct inode * inode , const char * name , void * buffer , size_t size )
2005-04-17 02:20:36 +04:00
{
2016-04-11 03:48:24 +03:00
if ( ! reiserfs_xattrs_user ( inode - > i_sb ) )
2005-07-13 07:21:28 +04:00
return - EOPNOTSUPP ;
2016-04-11 03:48:24 +03:00
return reiserfs_xattr_get ( inode , xattr_full_name ( handler , name ) ,
2016-04-11 01:50:48 +03:00
buffer , size ) ;
2005-04-17 02:20:36 +04:00
}
static int
2016-05-27 17:19:30 +03:00
user_set ( const struct xattr_handler * handler , struct dentry * unused ,
struct inode * inode , const char * name , const void * buffer ,
size_t size , int flags )
2005-04-17 02:20:36 +04:00
{
2016-05-27 17:19:30 +03:00
if ( ! reiserfs_xattrs_user ( inode - > i_sb ) )
2005-07-13 07:21:28 +04:00
return - EOPNOTSUPP ;
2016-05-27 17:19:30 +03:00
return reiserfs_xattr_set ( inode ,
2016-04-11 01:50:48 +03:00
xattr_full_name ( handler , name ) ,
buffer , size , flags ) ;
2005-04-17 02:20:36 +04:00
}
2015-12-02 16:44:43 +03:00
static bool user_list ( struct dentry * dentry )
2005-04-17 02:20:36 +04:00
{
2015-12-02 16:44:43 +03:00
return reiserfs_xattrs_user ( dentry - > d_sb ) ;
2005-04-17 02:20:36 +04:00
}
2010-05-14 04:53:19 +04:00
const struct xattr_handler reiserfs_xattr_user_handler = {
2005-04-17 02:20:36 +04:00
. prefix = XATTR_USER_PREFIX ,
. get = user_get ,
. set = user_set ,
. list = user_list ,
} ;