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 edfb860..936b950 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))