mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-26 19:19:32 +03:00
Illumos #3085: zfs diff panics, then panics in a loop on booting
Reviewed by: Matt Ahrens <matthew.ahrens@delphix.com> Approved by: Richard Lowe <richlowe@richlowe.net> References: https://www.illumos.org/issues/3085 Ported by: Martin Matuska <martin@matuska.org> Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
This commit is contained in:
parent
c578f007ff
commit
9e11c7eee2
@ -3854,6 +3854,11 @@ dsl_dataset_user_release_sync(void *arg1, void *tag, dmu_tx_t *tx)
|
|||||||
VERIFY(error == 0 || error == ENOENT);
|
VERIFY(error == 0 || error == ENOENT);
|
||||||
zapobj = ds->ds_phys->ds_userrefs_obj;
|
zapobj = ds->ds_phys->ds_userrefs_obj;
|
||||||
VERIFY(0 == zap_remove(mos, zapobj, ra->htag, tx));
|
VERIFY(0 == zap_remove(mos, zapobj, ra->htag, tx));
|
||||||
|
|
||||||
|
spa_history_log_internal(LOG_DS_USER_RELEASE,
|
||||||
|
dp->dp_spa, tx, "<%s> %lld dataset = %llu",
|
||||||
|
ra->htag, (longlong_t)refs, dsobj);
|
||||||
|
|
||||||
if (ds->ds_userrefs == 0 && ds->ds_phys->ds_num_children == 1 &&
|
if (ds->ds_userrefs == 0 && ds->ds_phys->ds_num_children == 1 &&
|
||||||
DS_IS_DEFER_DESTROY(ds)) {
|
DS_IS_DEFER_DESTROY(ds)) {
|
||||||
struct dsl_ds_destroyarg dsda = {0};
|
struct dsl_ds_destroyarg dsda = {0};
|
||||||
@ -3864,10 +3869,6 @@ dsl_dataset_user_release_sync(void *arg1, void *tag, dmu_tx_t *tx)
|
|||||||
/* We already did the destroy_check */
|
/* We already did the destroy_check */
|
||||||
dsl_dataset_destroy_sync(&dsda, tag, tx);
|
dsl_dataset_destroy_sync(&dsda, tag, tx);
|
||||||
}
|
}
|
||||||
|
|
||||||
spa_history_log_internal(LOG_DS_USER_RELEASE,
|
|
||||||
dp->dp_spa, tx, "<%s> %lld dataset = %llu",
|
|
||||||
ra->htag, (longlong_t)refs, dsobj);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
Loading…
Reference in New Issue
Block a user