Backport fix for vendor issue #3085
3085 zfs diff panics, then panics in a loop on booting References: https://www.illumos.org/issues/3085 PR: kern/170763 Obtained from: ssh://anonhg@hg.illumos.org/illumos-gate (r13772) MFC after: 1 week
This commit is contained in:
parent
ab16a5bd08
commit
bb9b1f7a8b
@ -3969,6 +3969,11 @@ dsl_dataset_user_release_sync(void *arg1, void *tag, dmu_tx_t *tx)
|
||||
VERIFY(error == 0 || error == ENOENT);
|
||||
zapobj = ds->ds_phys->ds_userrefs_obj;
|
||||
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 &&
|
||||
DS_IS_DEFER_DESTROY(ds)) {
|
||||
struct dsl_ds_destroyarg dsda = {0};
|
||||
@ -3979,10 +3984,6 @@ dsl_dataset_user_release_sync(void *arg1, void *tag, dmu_tx_t *tx)
|
||||
/* We already did the destroy_check */
|
||||
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
|
||||
|
Loading…
x
Reference in New Issue
Block a user