From bca84f54ce6ff22f7a14a7bb6370bd45fcd57e3b Mon Sep 17 00:00:00 2001 From: Mateusz Guzik Date: Sun, 14 Oct 2018 16:14:01 +0000 Subject: [PATCH] zfs: fix a panic after failed mount r338927("zfs: depessimize zfs_root with rmlocks") failed to error check the mount before caching root vnode. Results in crashes in rrw_enter_read_impl tracing back to zfs_mount. Reported by: Mike Tancsa Tested by: allanjude Approved by: re (kib) --- sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c index 1ab51ba77a1f..b372e9734aa5 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c @@ -1929,7 +1929,8 @@ zfs_mount(vfs_t *vfsp) error = zfs_domount(vfsp, osname); PICKUP_GIANT(); - zfs_root_setvnode((zfsvfs_t *)vfsp->vfs_data); + if (error == 0) + zfs_root_setvnode((zfsvfs_t *)vfsp->vfs_data); #ifdef illumos /*