svn commit: r307857 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs
Alexander Motin
mav at FreeBSD.org
Mon Oct 24 12:24:25 UTC 2016
Author: mav
Date: Mon Oct 24 12:24:24 2016
New Revision: 307857
URL: https://svnweb.freebsd.org/changeset/base/307857
Log:
Fix panic after ZVOL renamed to name invalid for DEVFS.
MFC after: 2 weeks
Modified:
head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c
Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c
==============================================================================
--- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c Mon Oct 24 11:47:27 2016 (r307856)
+++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c Mon Oct 24 12:24:24 2016 (r307857)
@@ -782,8 +782,10 @@ zvol_remove_zv(zvol_state_t *zv)
g_topology_lock();
zvol_geom_destroy(zv);
g_topology_unlock();
- } else if (zv->zv_volmode == ZFS_VOLMODE_DEV)
- destroy_dev(zv->zv_dev);
+ } else if (zv->zv_volmode == ZFS_VOLMODE_DEV) {
+ if (zv->zv_dev != NULL)
+ destroy_dev(zv->zv_dev);
+ }
#endif
avl_destroy(&zv->zv_znode.z_range_avl);
@@ -2973,14 +2975,14 @@ zvol_rename_minor(zvol_state_t *zv, cons
} else if (zv->zv_volmode == ZFS_VOLMODE_DEV) {
struct make_dev_args args;
- dev = zv->zv_dev;
- ASSERT(dev != NULL);
- zv->zv_dev = NULL;
- destroy_dev(dev);
- if (zv->zv_total_opens > 0) {
- zv->zv_flags &= ~ZVOL_EXCL;
- zv->zv_total_opens = 0;
- zvol_last_close(zv);
+ if ((dev = zv->zv_dev) != NULL) {
+ zv->zv_dev = NULL;
+ destroy_dev(dev);
+ if (zv->zv_total_opens > 0) {
+ zv->zv_flags &= ~ZVOL_EXCL;
+ zv->zv_total_opens = 0;
+ zvol_last_close(zv);
+ }
}
make_dev_args_init(&args);
More information about the svn-src-all
mailing list