xfs: switch to NOFS allocation under i_lock in xfs_da_buf_make
i_lock is taken in the reclaim context so all allocations under it must avoid recursions into the filesystem. Reported by the new reclaim context tracing in lockdep. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Felix Blyakher <felixb@sgi.com> Signed-off-by: Felix Blyakher <felixb@sgi.com>
This commit is contained in:
Родитель
f41d7fb9da
Коммит
73195ed786
|
@ -2261,9 +2261,9 @@ xfs_da_buf_make(int nbuf, xfs_buf_t **bps, inst_t *ra)
|
|||
int off;
|
||||
|
||||
if (nbuf == 1)
|
||||
dabuf = kmem_zone_alloc(xfs_dabuf_zone, KM_SLEEP);
|
||||
dabuf = kmem_zone_alloc(xfs_dabuf_zone, KM_NOFS);
|
||||
else
|
||||
dabuf = kmem_alloc(XFS_DA_BUF_SIZE(nbuf), KM_SLEEP);
|
||||
dabuf = kmem_alloc(XFS_DA_BUF_SIZE(nbuf), KM_NOFS);
|
||||
dabuf->dirty = 0;
|
||||
#ifdef XFS_DABUF_DEBUG
|
||||
dabuf->ra = ra;
|
||||
|
|
Загрузка…
Ссылка в новой задаче