diff -uNr linux-2.6.23.9/drivers/md/dm.c linux-2.6.23.9-new/drivers/md/dm.c --- linux-2.6.23.9/drivers/md/dm.c 2007-11-26 12:51:43.000000000 -0500 +++ linux-2.6.23.9-new/drivers/md/dm.c 2007-11-28 10:07:20.376734456 -0500 @@ -652,6 +652,13 @@ struct bio *clone; clone = bio_alloc_bioset(GFP_NOIO, bio->bi_max_vecs, bs); + + /* + * bio_alloc_bioset could return NULL. + */ + if(!clone) + return clone; + __bio_clone(clone, bio); clone->bi_destructor = dm_bio_destructor; clone->bi_sector = sector;