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;
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;
}
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();
}
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;
}
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;
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);
}
return (error);
}
+#ifdef HAVE_INODE_TRUNCATE_RANGE
static void
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
.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 */