
From: Hugh Dickins <hugh@veritas.com>

When loop restricts underlying file's allocation mask to avoid deadlock, it
unintentionally masks out its highmem capability, making failures at the
underlying level much more likely.



 25-akpm/drivers/block/loop.c |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)

diff -puN drivers/block/loop.c~loop-01-use-highmem drivers/block/loop.c
--- 25/drivers/block/loop.c~loop-01-use-highmem	Tue Jun 10 12:54:19 2003
+++ 25-akpm/drivers/block/loop.c	Tue Jun 10 12:54:19 2003
@@ -714,7 +714,7 @@ static int loop_set_fd(struct loop_devic
 		goto out_putf;
 	}
 	lo->old_gfp_mask = inode->i_mapping->gfp_mask;
-	inode->i_mapping->gfp_mask = GFP_NOIO;
+	inode->i_mapping->gfp_mask &= ~(__GFP_IO|__GFP_FS);
 
 	set_blocksize(bdev, lo_blocksize);
 

_
