path: root/fs/cifs/cifsfs.h
diff options
authorAndreas Gruenbacher <agruenba@redhat.com>2016-04-22 12:11:38 +0200
committerAl Viro <viro@zeniv.linux.org.uk>2016-04-23 15:33:03 -0400
commita9ae008f407b50fc92ef19588d2ea2be13a7f5e2 (patch)
tree7899c9ed55e51abad0cfda73a36db431a7bea532 /fs/cifs/cifsfs.h
parentcifs: Fix removexattr for os2.* xattrs (diff)
cifs: Switch to generic xattr handlers
Use xattr handlers for resolving attribute names. The amount of setup code required on cifs is nontrivial, so use the same get and set functions for all handlers, with switch statements for the different types of attributes in them. The set_EA handler can handle NULL values, so we don't need a separate removexattr function anymore. Remove the cifs_dbg statements related to xattr name resolution; they don't add much. Don't build xattr.o when CONFIG_CIFS_XATTR is not defined. Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/cifs/cifsfs.h')
1 files changed, 8 insertions, 4 deletions
diff --git a/fs/cifs/cifsfs.h b/fs/cifs/cifsfs.h
index c89ecd7a5c39..c1e749af749b 100644
--- a/fs/cifs/cifsfs.h
+++ b/fs/cifs/cifsfs.h
@@ -120,11 +120,15 @@ extern const char *cifs_get_link(struct dentry *, struct inode *,
struct delayed_call *);
extern int cifs_symlink(struct inode *inode, struct dentry *direntry,
const char *symname);
-extern int cifs_removexattr(struct dentry *, const char *);
-extern int cifs_setxattr(struct dentry *, const char *, const void *,
- size_t, int);
-extern ssize_t cifs_getxattr(struct dentry *, struct inode *, const char *, void *, size_t);
+extern const struct xattr_handler *cifs_xattr_handlers[];
extern ssize_t cifs_listxattr(struct dentry *, char *, size_t);
+# define cifs_xattr_handlers NULL
+# define cifs_listxattr NULL
extern long cifs_ioctl(struct file *filep, unsigned int cmd, unsigned long arg);
extern const struct export_operations cifs_export_ops;