svn commit: r248551 - projects/libzfs_core/sys/cddl/contrib/opensolaris/uts/common/fs/zfs
Martin Matuska
mm at FreeBSD.org
Wed Mar 20 09:56:21 UTC 2013
Author: mm
Date: Wed Mar 20 09:56:20 2013
New Revision: 248551
URL: http://svnweb.freebsd.org/changeset/base/248551
Log:
Release hold on pool before calling zvol_create_minor()
Modified:
projects/libzfs_core/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c
Modified: projects/libzfs_core/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c
==============================================================================
--- projects/libzfs_core/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c Wed Mar 20 09:44:23 2013 (r248550)
+++ projects/libzfs_core/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c Wed Mar 20 09:56:20 2013 (r248551)
@@ -2233,13 +2233,16 @@ zvol_create_minors(const char *name)
return (error);
}
if (dmu_objset_type(os) == DMU_OST_ZVOL) {
+ dsl_dataset_long_hold(os->os_dsl_dataset, FTAG);
+ dsl_pool_rele(dmu_objset_pool(os), FTAG);
if ((error = zvol_create_minor(name)) == 0)
error = zvol_create_snapshots(os, name);
else {
printf("ZFS WARNING: Unable to create ZVOL %s (error=%d).\n",
name, error);
}
- dmu_objset_rele(os, FTAG);
+ dsl_dataset_long_rele(os->os_dsl_dataset, FTAG);
+ dsl_dataset_rele(os->os_dsl_dataset, FTAG);
return (error);
}
if (dmu_objset_type(os) != DMU_OST_ZFS) {
More information about the svn-src-projects
mailing list