Module Name: src Committed By: hannken Date: Thu Dec 6 09:58:52 UTC 2018
Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs: zfs_znode.c Log Message: Add missing ZFS_OBJ_HOLD_ENTER() / ZFS_OBJ_HOLD_EXIT() to zfs_zget_cleaner(). To generate a diff of this commit: cvs rdiff -u -r1.22 -r1.23 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c:1.22 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c:1.23 --- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c:1.22 Wed Nov 28 09:55:36 2018 +++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c Thu Dec 6 09:58:52 2018 @@ -1188,8 +1188,11 @@ zfs_zget_cleaner(zfsvfs_t *zfsvfs, uint6 znode_t *zp; int err; + ZFS_OBJ_HOLD_ENTER(zfsvfs, obj_num); + err = sa_buf_hold(zfsvfs->z_os, obj_num, NULL, &db); if (err) { + ZFS_OBJ_HOLD_EXIT(zfsvfs, obj_num); return (SET_ERROR(err)); } @@ -1199,12 +1202,15 @@ zfs_zget_cleaner(zfsvfs_t *zfsvfs, uint6 (doi.doi_bonus_type == DMU_OT_ZNODE && doi.doi_bonus_size < sizeof (znode_phys_t)))) { sa_buf_rele(db, NULL); + ZFS_OBJ_HOLD_EXIT(zfsvfs, obj_num); return (SET_ERROR(EINVAL)); } hdl = dmu_buf_get_user(db); - KASSERT(hdl != NULL); + ASSERT3P(hdl, !=, NULL); zp = sa_get_userdata(hdl); + ASSERT3U(zp->z_id, ==, obj_num); sa_buf_rele(db, NULL); + ZFS_OBJ_HOLD_EXIT(zfsvfs, obj_num); *zpp = zp; return (0); }