]> granicus.if.org Git - zfs/commitdiff
Illumos 5809 - Blowaway full receive in v1 pool causes kernel panic
authorPaul Dagnelie <pcd@delphix.com>
Fri, 5 Feb 2016 21:47:48 +0000 (13:47 -0800)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Mon, 8 Feb 2016 17:37:55 +0000 (09:37 -0800)
5809 Blowaway full receive in v1 pool causes kernel panic
Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Reviewed by: Alex Reece <alex@delphix.com>
Reviewed by: Will Andrews <will@freebsd.org>
Approved by: Gordon Ross <gwr@nexenta.com>

References:
  https://www.illumos.org/issues/5809
  https://github.com/illumos/illumos-gate/commit/f40b29c

Ported-by: Brian Behlendorf <behlendorf1@llnl.gov>
module/zfs/dmu_send.c

index 88d27c867f05c120e4ca0aede78738fcc7b2e0cd..6585e4778de8f28acd22b0f1d846c80a886de31b 100644 (file)
@@ -1350,7 +1350,8 @@ dmu_recv_begin_sync(void *arg, dmu_tx_t *tx)
                }
                dsobj = dsl_dataset_create_sync(ds->ds_dir, recv_clone_name,
                    snap, crflags, drba->drba_cred, tx);
-               dsl_dataset_rele(snap, FTAG);
+               if (drba->drba_snapobj != 0)
+                       dsl_dataset_rele(snap, FTAG);
                dsl_dataset_rele(ds, FTAG);
        } else {
                dsl_dir_t *dd;