mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-25 02:49:32 +03:00
Switch KM_SLEEP to KM_PUSHPAGE
This warning indicates the incorrect use of KM_SLEEP in a call
path which must use KM_PUSHPAGE to avoid deadlocking in direct
reclaim. See commit b8d06fca08
for additional details.
SPL: Fixing allocation for task txg_sync (6093) which
used GFP flags 0x297bda7c with PF_NOFS set
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue #973
This commit is contained in:
parent
0a2f7b3662
commit
95fd8c9a7f
@ -653,7 +653,7 @@ ddt_alloc(const ddt_key_t *ddk)
|
||||
ddt_entry_t *dde;
|
||||
|
||||
/* XXX: Move to a slab */
|
||||
dde = kmem_zalloc(sizeof (ddt_entry_t), KM_SLEEP);
|
||||
dde = kmem_zalloc(sizeof (ddt_entry_t), KM_PUSHPAGE);
|
||||
cv_init(&dde->dde_cv, NULL, CV_DEFAULT, NULL);
|
||||
|
||||
dde->dde_key = *ddk;
|
||||
@ -802,7 +802,7 @@ ddt_table_alloc(spa_t *spa, enum zio_checksum c)
|
||||
ddt_t *ddt;
|
||||
|
||||
/* XXX: Move to a slab */
|
||||
ddt = kmem_zalloc(sizeof (*ddt), KM_SLEEP | KM_NODEBUG);
|
||||
ddt = kmem_zalloc(sizeof (*ddt), KM_PUSHPAGE | KM_NODEBUG);
|
||||
|
||||
mutex_init(&ddt->ddt_lock, NULL, MUTEX_DEFAULT, NULL);
|
||||
avl_create(&ddt->ddt_tree, ddt_entry_compare,
|
||||
@ -904,7 +904,7 @@ ddt_class_contains(spa_t *spa, enum ddt_class max_class, const blkptr_t *bp)
|
||||
return (B_TRUE);
|
||||
|
||||
ddt = spa->spa_ddt[BP_GET_CHECKSUM(bp)];
|
||||
dde = kmem_alloc(sizeof(ddt_entry_t), KM_SLEEP);
|
||||
dde = kmem_alloc(sizeof(ddt_entry_t), KM_PUSHPAGE);
|
||||
|
||||
ddt_key_fill(&(dde->dde_key), bp);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user