X-Git-Url: https://git.camperquake.de/gitweb.cgi?a=blobdiff_plain;f=module%2Fzfs%2Fzpl_inode.c;h=5b31c126cd4ae42b695c9fa715e49b1fb424605d;hb=8f195a908ffaa8faf8f4c8a0e701e44ae3859e33;hp=d9b918b43d92d09bc6c60d2e57661be31672d67d;hpb=ebe7e575eae1e03b1faa545a424f008faeac589d;p=zfs.git diff --git a/module/zfs/zpl_inode.c b/module/zfs/zpl_inode.c index d9b918b..5b31c12 100644 --- a/module/zfs/zpl_inode.c +++ b/module/zfs/zpl_inode.c @@ -31,7 +31,11 @@ static struct dentry * +#ifdef HAVE_LOOKUP_NAMEIDATA zpl_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd) +#else +zpl_lookup(struct inode *dir, struct dentry *dentry, unsigned int flags) +#endif { cred_t *cr = CRED(); struct inode *ip; @@ -54,7 +58,7 @@ zpl_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd) void zpl_vap_init(vattr_t *vap, struct inode *dir, struct dentry *dentry, - mode_t mode, cred_t *cr) + zpl_umode_t mode, cred_t *cr) { vap->va_mask = ATTR_MODE; vap->va_mode = mode; @@ -71,7 +75,7 @@ zpl_vap_init(vattr_t *vap, struct inode *dir, struct dentry *dentry, } static int -zpl_create(struct inode *dir, struct dentry *dentry, int mode, +zpl_create(struct inode *dir, struct dentry *dentry, zpl_umode_t mode, struct nameidata *nd) { cred_t *cr = CRED(); @@ -93,7 +97,8 @@ zpl_create(struct inode *dir, struct dentry *dentry, int mode, } static int -zpl_mknod(struct inode *dir, struct dentry *dentry, int mode, dev_t rdev) +zpl_mknod(struct inode *dir, struct dentry *dentry, zpl_umode_t mode, + dev_t rdev) { cred_t *cr = CRED(); struct inode *ip; @@ -136,7 +141,7 @@ zpl_unlink(struct inode *dir, struct dentry *dentry) } static int -zpl_mkdir(struct inode *dir, struct dentry *dentry, int mode) +zpl_mkdir(struct inode *dir, struct dentry *dentry, zpl_umode_t mode) { cred_t *cr = CRED(); vattr_t *vap; @@ -293,9 +298,8 @@ zpl_follow_link(struct dentry *dentry, struct nameidata *nd) static void zpl_put_link(struct dentry *dentry, struct nameidata *nd, void *ptr) { - char *link; + const char *link = nd_get_link(nd); - link = nd_get_link(nd); if (!IS_ERR(link)) kmem_free(link, MAXPATHLEN); } @@ -328,6 +332,7 @@ out: return (error); } +#ifdef HAVE_INODE_TRUNCATE_RANGE static void zpl_truncate_range(struct inode* ip, loff_t start, loff_t end) { @@ -354,6 +359,7 @@ zpl_truncate_range(struct inode* ip, loff_t start, loff_t end) crfree(cr); } +#endif /* HAVE_INODE_TRUNCATE_RANGE */ #ifdef HAVE_INODE_FALLOCATE static long @@ -379,7 +385,9 @@ const struct inode_operations zpl_inode_operations = { .getxattr = generic_getxattr, .removexattr = generic_removexattr, .listxattr = zpl_xattr_list, +#ifdef HAVE_INODE_TRUNCATE_RANGE .truncate_range = zpl_truncate_range, +#endif /* HAVE_INODE_TRUNCATE_RANGE */ #ifdef HAVE_INODE_FALLOCATE .fallocate = zpl_fallocate, #endif /* HAVE_INODE_FALLOCATE */