44 lines · c
1// SPDX-License-Identifier: GPL-2.02#include "reiserfs.h"3#include <linux/errno.h>4#include <linux/fs.h>5#include <linux/pagemap.h>6#include <linux/xattr.h>7#include "xattr.h"8#include <linux/uaccess.h>9 10static int11user_get(const struct xattr_handler *handler, struct dentry *unused,12 struct inode *inode, const char *name, void *buffer, size_t size)13{14 if (!reiserfs_xattrs_user(inode->i_sb))15 return -EOPNOTSUPP;16 return reiserfs_xattr_get(inode, xattr_full_name(handler, name),17 buffer, size);18}19 20static int21user_set(const struct xattr_handler *handler, struct mnt_idmap *idmap,22 struct dentry *unused,23 struct inode *inode, const char *name, const void *buffer,24 size_t size, int flags)25{26 if (!reiserfs_xattrs_user(inode->i_sb))27 return -EOPNOTSUPP;28 return reiserfs_xattr_set(inode,29 xattr_full_name(handler, name),30 buffer, size, flags);31}32 33static bool user_list(struct dentry *dentry)34{35 return reiserfs_xattrs_user(dentry->d_sb);36}37 38const struct xattr_handler reiserfs_xattr_user_handler = {39 .prefix = XATTR_USER_PREFIX,40 .get = user_get,41 .set = user_set,42 .list = user_list,43};44