xfs: switch to NOFS allocation under i_lock in xfs_getbmap

xfs_getbmap allocates memory with i_lock held, but i_lock is taken in
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>

authored by Christoph Hellwig and committed by Felix Blyakher ca35dcd6 0cc6eee1

+1 -1
+1 -1
fs/xfs/xfs_bmap.c
··· 6009 6009 */ 6010 6010 error = ENOMEM; 6011 6011 subnex = 16; 6012 - map = kmem_alloc(subnex * sizeof(*map), KM_MAYFAIL); 6012 + map = kmem_alloc(subnex * sizeof(*map), KM_MAYFAIL | KM_NOFS); 6013 6013 if (!map) 6014 6014 goto out_unlock_ilock; 6015 6015