Module Name: src Committed By: yhardy Date: Sat Nov 28 22:53:06 UTC 2020
Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs: vdev_disk.c Log Message: Use vn_close to release the vnodes in the error handling blocks, since the vnodes were opened for writing. Fix proposed on current-users and improved by hannken@. To generate a diff of this commit: cvs rdiff -u -r1.18 -r1.19 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.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/vdev_disk.c diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c:1.18 src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c:1.19 --- src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c:1.18 Thu Jun 25 09:39:15 2020 +++ src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c Sat Nov 28 22:53:06 2020 @@ -215,7 +215,11 @@ vdev_disk_open(vdev_t *vd, uint64_t *psi return (SET_ERROR(error)); } if (vp->v_type != VBLK) { +#ifdef __NetBSD__ + vn_close(vp, FREAD|FWRITE, kcred); +#else vrele(vp); +#endif vd->vdev_stat.vs_aux = VDEV_AUX_OPEN_FAILED; return (SET_ERROR(EINVAL)); } @@ -247,7 +251,11 @@ vdev_disk_open(vdev_t *vd, uint64_t *psi error = workqueue_create(&dvd->vd_wq, "vdevsync", vdev_disk_flush, dvd, PRI_NONE, IPL_NONE, WQ_MPSAFE); if (error != 0) { +#ifdef __NetBSD__ + vn_close(vp, FREAD|FWRITE, kcred); +#else vrele(vp); +#endif return (SET_ERROR(error)); }