svn commit: r249042 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs
Martin Matuska
mm at FreeBSD.org
Wed Apr 3 09:52:31 UTC 2013
Author: mm
Date: Wed Apr 3 09:52:30 2013
New Revision: 249042
URL: http://svnweb.freebsd.org/changeset/base/249042
Log:
Fix possible pool hold leak in dmu_send_impl()
Problem reported to vendor:
https://www.illumos.org/issues/3645
Reported by: Andriy Gapon <avg at FreeBSD.org>
MFC after: 15 days
Modified:
head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c
Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c
==============================================================================
--- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c Wed Apr 3 08:27:35 2013 (r249041)
+++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c Wed Apr 3 09:52:30 2013 (r249042)
@@ -500,14 +500,14 @@ dmu_send_impl(void *tag, dsl_pool_t *dp,
list_insert_head(&ds->ds_sendstreams, dsp);
mutex_exit(&ds->ds_sendstream_lock);
+ dsl_dataset_long_hold(ds, FTAG);
+ dsl_pool_rele(dp, tag);
+
if (dump_bytes(dsp, drr, sizeof (dmu_replay_record_t)) != 0) {
err = dsp->dsa_err;
goto out;
}
- dsl_dataset_long_hold(ds, FTAG);
- dsl_pool_rele(dp, tag);
-
err = traverse_dataset(ds, fromtxg, TRAVERSE_PRE | TRAVERSE_PREFETCH,
backup_cb, dsp);
More information about the svn-src-all
mailing list