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 <a...@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);
 
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to