]> granicus.if.org Git - zfs/commitdiff
Fully update inode when created
authorBrian Behlendorf <behlendorf1@llnl.gov>
Mon, 2 May 2011 21:04:19 +0000 (14:04 -0700)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Mon, 2 May 2011 21:04:19 +0000 (14:04 -0700)
When a new znode/inode pair is created both the znode and the inode
should be immediately updated to the correct values.  This was done
for the znode and for most of the values in the inode, but not all
of them.  This normally wasn't a problem because most subsequent
operations would cause the inode to be immediately updated.  This
change ensures the inode is now fully updated before it is inserted
in to the inode hash.

Closes #116
Closes #146
Closes #164

module/zfs/zfs_znode.c

index edfb860094eed336305c59f35e937e0dd30d686e..936b950f34be946c3c59a6d7aae0b3e9bc8e0c46 100644 (file)
@@ -373,8 +373,7 @@ zfs_znode_alloc(zfs_sb_t *zsb, dmu_buf_t *db, int blksz,
        }
 
        ip->i_ino = obj;
-       ip->i_mode = zp->z_mode;
-       ip->i_mtime = ip->i_atime = ip->i_ctime = CURRENT_TIME_SEC;
+       zfs_inode_update(zp);
        zfs_inode_set_ops(zsb, ip);
 
        if (insert_inode_locked(ip))