summaryrefslogtreecommitdiffstats
path: root/module
diff options
context:
space:
mode:
authorTim Chase <[email protected]>2013-11-20 07:56:56 -0600
committerBrian Behlendorf <[email protected]>2013-12-02 14:02:46 -0800
commitf707635fa5a0a687f243a9b0976d7296955744d9 (patch)
tree4b578e7590f48ad5963d7bde09fbc96f4375d79c /module
parent119a394ab0eee137a5198ad3fffab45fb11ef108 (diff)
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 65c67ea86e9f112177f1ad32de8e780f10798a64. Signed-off-by: Brian Behlendorf <[email protected]> Closes #1852 Closes #1855
Diffstat (limited to 'module')
-rw-r--r--module/zfs/dsl_userhold.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/module/zfs/dsl_userhold.c b/module/zfs/dsl_userhold.c
index 97775b591..e24ed6444 100644
--- a/module/zfs/dsl_userhold.c
+++ b/module/zfs/dsl_userhold.c
@@ -260,7 +260,7 @@ dsl_dataset_user_hold_sync(void *arg, dmu_tx_t *tx)
uint64_t now = gethrestime_sec();
if (dduha->dduha_minor != 0)
- tmpholds = fnvlist_alloc();
+ VERIFY0(nvlist_alloc(&tmpholds, NV_UNIQUE_NAME, KM_PUSHPAGE));
else
tmpholds = 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);
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_minor = cleanup_minor;