[PATCH 4/6] Handle possible bio_alloc failure in jfs

From: Nikanth Karthikesan
Date: Tue Apr 14 2009 - 07:11:33 EST


Handle bio_alloc failure in jfs.

Signed-off-by: Nikanth Karthikesan <knikanth@xxxxxxx>

---

Index: linux-2.6/fs/jfs/jfs_logmgr.c
===================================================================
--- linux-2.6.orig/fs/jfs/jfs_logmgr.c
+++ linux-2.6/fs/jfs/jfs_logmgr.c
@@ -2003,6 +2003,8 @@ static int lbmRead(struct jfs_log * log,
bp->l_flag |= lbmREAD;

bio = bio_alloc(GFP_NOFS, 1);
+ if (unlikely(!bio))
+ return -ENOMEM;

bio->bi_sector = bp->l_blkno << (log->l2bsize - 9);
bio->bi_bdev = log->bdev;
@@ -2145,6 +2147,9 @@ static void lbmStartIO(struct lbuf * bp)
jfs_info("lbmStartIO\n");

bio = bio_alloc(GFP_NOFS, 1);
+ if (unlikely(!bio))
+ panic("Unable to allocate bio\n");
+
bio->bi_sector = bp->l_blkno << (log->l2bsize - 9);
bio->bi_bdev = log->bdev;
bio->bi_io_vec[0].bv_page = bp->l_page;
Index: linux-2.6/fs/jfs/jfs_metapage.c
===================================================================
--- linux-2.6.orig/fs/jfs/jfs_metapage.c
+++ linux-2.6/fs/jfs/jfs_metapage.c
@@ -436,6 +436,9 @@ static int metapage_writepage(struct pag
len = min(xlen, (int)JFS_SBI(inode->i_sb)->nbperpage);

bio = bio_alloc(GFP_NOFS, 1);
+ if (unlikely(!bio))
+ return -ENOMEM;
+
bio->bi_bdev = inode->i_sb->s_bdev;
bio->bi_sector = pblock << (inode->i_blkbits - 9);
bio->bi_end_io = metapage_write_end_io;
@@ -515,6 +518,9 @@ static int metapage_readpage(struct file
submit_bio(READ, bio);

bio = bio_alloc(GFP_NOFS, 1);
+ if (unlikely(!bio))
+ return -ENOMEM;
+
bio->bi_bdev = inode->i_sb->s_bdev;
bio->bi_sector = pblock << (inode->i_blkbits - 9);
bio->bi_end_io = metapage_read_end_io;


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/