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 <[email protected]>
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);
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"