diff -Naur linux-2.6.0-test9-udm1/drivers/md/dm-snap.c linux-2.6.0-test9-evms-2.2.0/drivers/md/dm-snap.c --- linux-2.6.0-test9-udm1/drivers/md/dm-snap.c 2003-10-20 11:22:17.000000000 -0500 +++ linux-2.6.0-test9-evms-2.2.0/drivers/md/dm-snap.c 2003-10-20 11:21:29.000000000 -0500 @@ -1076,14 +1076,12 @@ int do_origin(struct dm_dev *origin, struct bio *bio) { struct origin *o; - int r; + int r = 1; down_read(&_origins_lock); o = __lookup_origin(origin->bdev); - if (!o) - BUG(); - - r = __origin_write(&o->snapshots, bio); + if (o) + r = __origin_write(&o->snapshots, bio); up_read(&_origins_lock); return r;