Some nvlist allocations in hold processing need to use KM_PUSHPAGE.
This should hopefully catch the rest of the allocations in the
user hold/release processing that were missed by commit
65c67ea86e
.
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #1852
Closes #1855
This commit is contained in:
parent
119a394ab0
commit
f707635fa5
|
@ -260,7 +260,7 @@ dsl_dataset_user_hold_sync(void *arg, dmu_tx_t *tx)
|
||||||
uint64_t now = gethrestime_sec();
|
uint64_t now = gethrestime_sec();
|
||||||
|
|
||||||
if (dduha->dduha_minor != 0)
|
if (dduha->dduha_minor != 0)
|
||||||
tmpholds = fnvlist_alloc();
|
VERIFY0(nvlist_alloc(&tmpholds, NV_UNIQUE_NAME, KM_PUSHPAGE));
|
||||||
else
|
else
|
||||||
tmpholds = NULL;
|
tmpholds = NULL;
|
||||||
for (pair = nvlist_next_nvpair(dduha->dduha_chkholds, NULL);
|
for (pair = nvlist_next_nvpair(dduha->dduha_chkholds, NULL);
|
||||||
|
@ -315,7 +315,8 @@ dsl_dataset_user_hold(nvlist_t *holds, minor_t cleanup_minor, nvlist_t *errlist)
|
||||||
return (0);
|
return (0);
|
||||||
|
|
||||||
dduha.dduha_holds = holds;
|
dduha.dduha_holds = holds;
|
||||||
dduha.dduha_chkholds = fnvlist_alloc();
|
VERIFY0(nvlist_alloc(&dduha.dduha_chkholds, NV_UNIQUE_NAME,
|
||||||
|
KM_PUSHPAGE));
|
||||||
dduha.dduha_errlist = errlist;
|
dduha.dduha_errlist = errlist;
|
||||||
dduha.dduha_minor = cleanup_minor;
|
dduha.dduha_minor = cleanup_minor;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue