[PATCH] Avoid deadlock in sync_page_io by using GFP_NOIO
authorNeil Brown <neilb@cse.unsw.edu.au>
Sat, 16 Apr 2005 22:23:54 +0000 (15:23 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Sat, 16 Apr 2005 22:23:54 +0000 (15:23 -0700)
..as sync_page_io can be called on the write-out path.

Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drivers/md/md.c

index 04562add1920ad08ad48608c8ba5fc4662ed6cfa..aa72c88a024f7ef06f4c32263497a379c0bd7094 100644 (file)
@@ -332,7 +332,7 @@ static int bi_complete(struct bio *bio, unsigned int bytes_done, int error)
 static int sync_page_io(struct block_device *bdev, sector_t sector, int size,
                   struct page *page, int rw)
 {
 static int sync_page_io(struct block_device *bdev, sector_t sector, int size,
                   struct page *page, int rw)
 {
-       struct bio *bio = bio_alloc(GFP_KERNEL, 1);
+       struct bio *bio = bio_alloc(GFP_NOIO, 1);
        struct completion event;
        int ret;
 
        struct completion event;
        int ret;