X-Git-Url: https://git.camperquake.de/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=include%2Flinux%2Fxattr_compat.h;h=9878aab72536061ed84760bd9a05be6835253d49;hb=df554c148ecfdfb7e597f8ab7eee71388b24a19d;hp=dfa92acab7073808962f6589f88404f4f657dc65;hpb=777d4af89137907adc91377327505f40c296035d;p=zfs.git diff --git a/include/linux/xattr_compat.h b/include/linux/xattr_compat.h index dfa92ac..9878aab 100644 --- a/include/linux/xattr_compat.h +++ b/include/linux/xattr_compat.h @@ -39,4 +39,49 @@ typedef const struct xattr_handler xattr_handler_t; typedef struct xattr_handler xattr_handler_t; #endif +/* + * 2.6.33 API change, + * The xattr_hander->get() callback was changed to take a dentry + * instead of an inode, and a handler_flags argument was added. + */ +#ifdef HAVE_DENTRY_XATTR_GET +#define ZPL_XATTR_GET_WRAPPER(fn) \ +static int \ +fn(struct dentry *dentry, const char *name, void *buffer, size_t size, \ + int unused_handler_flags) \ +{ \ + return __ ## fn(dentry->d_inode, name, buffer, size); \ +} +#else +#define ZPL_XATTR_GET_WRAPPER(fn) \ +static int \ +fn(struct inode *ip, const char *name, void *buffer, size_t size) \ +{ \ + return __ ## fn(ip, name, buffer, size); \ +} +#endif /* HAVE_DENTRY_XATTR_GET */ + +/* + * 2.6.33 API change, + * The xattr_hander->set() callback was changed to take a dentry + * instead of an inode, and a handler_flags argument was added. + */ +#ifdef HAVE_DENTRY_XATTR_SET +#define ZPL_XATTR_SET_WRAPPER(fn) \ +static int \ +fn(struct dentry *dentry, const char *name, const void *buffer, \ + size_t size, int flags, int unused_handler_flags) \ +{ \ + return __ ## fn(dentry->d_inode, name, buffer, size, flags); \ +} +#else +#define ZPL_XATTR_SET_WRAPPER(fn) \ +static int \ +fn(struct inode *ip, const char *name, const void *buffer, \ + size_t size, int flags) \ +{ \ + return __ ## fn(ip, name, buffer, size, flags); \ +} +#endif /* HAVE_DENTRY_XATTR_SET */ + #endif /* _ZFS_XATTR_H */