From: Christoph Hellwig Date: Sat, 18 Jul 2009 22:14:54 +0000 (-0400) Subject: xfs: switch to NOFS allocation under i_lock in xfs_getbmap X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=ca35dcd6cae7d4a780c484c53f45548c4719f82c;p=GitHub%2FLineageOS%2Fandroid_kernel_motorola_exynos9610.git 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 Reviewed-by: Felix Blyakher Signed-off-by: Felix Blyakher --- diff --git a/fs/xfs/xfs_bmap.c b/fs/xfs/xfs_bmap.c index 7928b9983c1d..8ee5b5a76a2a 100644 --- a/fs/xfs/xfs_bmap.c +++ b/fs/xfs/xfs_bmap.c @@ -6009,7 +6009,7 @@ xfs_getbmap( */ error = ENOMEM; subnex = 16; - map = kmem_alloc(subnex * sizeof(*map), KM_MAYFAIL); + map = kmem_alloc(subnex * sizeof(*map), KM_MAYFAIL | KM_NOFS); if (!map) goto out_unlock_ilock;