]> git.proxmox.com Git - mirror_zfs.git/blobdiff - module/zfs/dsl_dataset.c
async zvol minor node creation interferes with receive
[mirror_zfs.git] / module / zfs / dsl_dataset.c
index ea2b60076dd3e8f47795fac9aff588bd0c1ecbe3..126d1b688e40faa32ab8d80979b8c4493ade44b4 100644 (file)
@@ -1869,7 +1869,6 @@ dsl_dataset_snapshot_sync(void *arg, dmu_tx_t *tx)
                        dsl_props_set_sync_impl(ds->ds_prev,
                            ZPROP_SRC_LOCAL, ddsa->ddsa_props, tx);
                }
-               zvol_create_minors(dp->dp_spa, nvpair_name(pair), B_TRUE);
                dsl_dataset_rele(ds, FTAG);
        }
 }
@@ -1944,6 +1943,13 @@ dsl_dataset_snapshot(nvlist_t *snaps, nvlist_t *props, nvlist_t *errors)
                fnvlist_free(suspended);
        }
 
+       if (error == 0) {
+               for (pair = nvlist_next_nvpair(snaps, NULL); pair != NULL;
+                   pair = nvlist_next_nvpair(snaps, pair)) {
+                       zvol_create_minor(nvpair_name(pair));
+               }
+       }
+
        return (error);
 }