mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-25 18:59:33 +03:00
Use KM_PUSHPAGE in dsl_dataset_rollback_check()
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 <behlendorf1@llnl.gov>
Signed-off-by: Eric Dillmann <eric@jave.fr>
Closes #2569
This commit is contained in:
parent
1ffe90c5d3
commit
ab6f407faa
@ -1763,9 +1763,9 @@ dsl_dataset_rollback_check(void *arg, dmu_tx_t *tx)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* must not have any bookmarks after the most recent snapshot */
|
/* 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));
|
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);
|
error = dsl_get_bookmarks_impl(ds, proprequest, bookmarks);
|
||||||
fnvlist_free(proprequest);
|
fnvlist_free(proprequest);
|
||||||
if (error != 0)
|
if (error != 0)
|
||||||
|
Loading…
Reference in New Issue
Block a user