]> git.proxmox.com Git - mirror_zfs-debian.git/blobdiff - module/zfs/zfs_ctldir.c
New upstream version 0.6.5.10
[mirror_zfs-debian.git] / module / zfs / zfs_ctldir.c
index 2767b235d5f980b0881d9fa8f19afa3373d9c93c..2e1aa75fe33223762b1dc85777c51393aa56d335 100644 (file)
@@ -455,7 +455,7 @@ static struct inode *
 zfsctl_inode_alloc(zfs_sb_t *zsb, uint64_t id,
     const struct file_operations *fops, const struct inode_operations *ops)
 {
-       struct timespec now = current_fs_time(zsb->z_sb);
+       struct timespec now;
        struct inode *ip;
        znode_t *zp;
 
@@ -463,6 +463,7 @@ zfsctl_inode_alloc(zfs_sb_t *zsb, uint64_t id,
        if (ip == NULL)
                return (NULL);
 
+       now = current_time(ip);
        zp = ITOZ(ip);
        ASSERT3P(zp->z_dirlocks, ==, NULL);
        ASSERT3P(zp->z_acl_cached, ==, NULL);
@@ -498,6 +499,9 @@ zfsctl_inode_alloc(zfs_sb_t *zsb, uint64_t id,
        ip->i_ctime = now;
        ip->i_fop = fops;
        ip->i_op = ops;
+#if defined(IOP_XATTR)
+       ip->i_opflags &= ~IOP_XATTR;
+#endif
 
        if (insert_inode_locked(ip)) {
                unlock_new_inode(ip);