--- sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c 2010-06-12 13:21:54.000000000 0000 +++ sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c 2010-06-12 13:21:54.000000000 0000 @@ -1277,8 +1277,6 @@ SA_ADD_BULK_ATTR(bulk, count, SA_ZPL_MODE(zfsvfs), NULL, &mode, sizeof (mode)); - zp->z_mode = mode; - if (sa_bulk_lookup(zp->z_sa_hdl, bulk, count)) { zfs_znode_dmu_fini(zp); ZFS_OBJ_HOLD_EXIT(zfsvfs, obj_num); @@ -1291,6 +1289,7 @@ return (EIO); } + zp->z_mode = mode; zp->z_uid = zfs_fuid_map_id(zfsvfs, uid, CRED(), ZFS_OWNER); zp->z_gid = zfs_fuid_map_id(zfsvfs, gid, CRED(), ZFS_GROUP); zp->z_unlinked = (zp->z_links == 0);