Skip to content

Commit

Permalink
Use KM_PUSHPAGE in dsl_dataset_rollback_check()
Browse files Browse the repository at this point in the history
The dsl_dataset_rollback_check() function is executed in the
txg_sync context.  To prevent a potential deadlock due to direct
memory reclaim it must use KM_PUSHPAGE.  This was introduced by
the recent 'zfs bookmark' features, commit da53684.

Signed-off-by: Brian Behlendorf <[email protected]>
Issue openzfs#2569
  • Loading branch information
behlendorf committed Aug 6, 2014
1 parent fbeddd6 commit f85c5d5
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions module/zfs/dsl_dataset.c
Original file line number Diff line number Diff line change
Expand Up @@ -1763,9 +1763,9 @@ dsl_dataset_rollback_check(void *arg, dmu_tx_t *tx)
}

/* must not have any bookmarks after the most recent snapshot */
proprequest = fnvlist_alloc();
VERIFY0(nvlist_alloc(&proprequest, NV_UNIQUE_NAME, KM_PUSHPAGE));
fnvlist_add_boolean(proprequest, zfs_prop_to_name(ZFS_PROP_CREATETXG));
bookmarks = fnvlist_alloc();
VERIFY0(nvlist_alloc(&bookmarks, NV_UNIQUE_NAME, KM_PUSHPAGE));
error = dsl_get_bookmarks_impl(ds, proprequest, bookmarks);
fnvlist_free(proprequest);
if (error != 0)
Expand Down

0 comments on commit f85c5d5

Please sign in to comment.