aboutsummaryrefslogtreecommitdiffstats
path: root/fs/gfs2/xattr.c
diff options
context:
space:
mode:
authorAndreas Gruenbacher <agruenba@redhat.com>2015-10-04 13:18:51 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2015-11-13 20:34:32 -0500
commitd9a82a04033f87bbd06efb29f78c0170a38154a8 (patch)
treeac074d813cda2a29a5f8a12a063e058ea588cb7c /fs/gfs2/xattr.c
parentbf781714b3e1421a0ebcd0137d081e6566a89f15 (diff)
xattr handlers: Pass handler to operations instead of flags
The xattr_handler operations are currently all passed a file system specific flags value which the operations can use to disambiguate between different handlers; some file systems use that to distinguish the xattr namespace, for example. In some oprations, it would be useful to also have access to the handler prefix. To allow that, pass a pointer to the handler to operations instead of the flags value alone. Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/gfs2/xattr.c')
-rw-r--r--fs/gfs2/xattr.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/fs/gfs2/xattr.c b/fs/gfs2/xattr.c
index 4c096fa9e2a1..53ce76a374fe 100644
--- a/fs/gfs2/xattr.c
+++ b/fs/gfs2/xattr.c
@@ -583,11 +583,13 @@ out:
583 * 583 *
584 * Returns: actual size of data on success, -errno on error 584 * Returns: actual size of data on success, -errno on error
585 */ 585 */
586static int gfs2_xattr_get(struct dentry *dentry, const char *name, 586static int gfs2_xattr_get(const struct xattr_handler *handler,
587 void *buffer, size_t size, int type) 587 struct dentry *dentry, const char *name,
588 void *buffer, size_t size)
588{ 589{
589 struct gfs2_inode *ip = GFS2_I(d_inode(dentry)); 590 struct gfs2_inode *ip = GFS2_I(d_inode(dentry));
590 struct gfs2_ea_location el; 591 struct gfs2_ea_location el;
592 int type = handler->flags;
591 int error; 593 int error;
592 594
593 if (!ip->i_eattr) 595 if (!ip->i_eattr)
@@ -1227,11 +1229,12 @@ int __gfs2_xattr_set(struct inode *inode, const char *name,
1227 return error; 1229 return error;
1228} 1230}
1229 1231
1230static int gfs2_xattr_set(struct dentry *dentry, const char *name, 1232static int gfs2_xattr_set(const struct xattr_handler *handler,
1231 const void *value, size_t size, int flags, int type) 1233 struct dentry *dentry, const char *name,
1234 const void *value, size_t size, int flags)
1232{ 1235{
1233 return __gfs2_xattr_set(d_inode(dentry), name, value, 1236 return __gfs2_xattr_set(d_inode(dentry), name, value,
1234 size, flags, type); 1237 size, flags, handler->flags);
1235} 1238}
1236 1239
1237 1240