Handle writes to a snapshot-origin device that has been extended since the snapshot was taken. The idea is to allow: create origin lv create snapshot of it Deactivate both devices. extend the origin Reactivate with the revised device sizes. Then the origin is bigger than the snapshot and reads to the new part of the origin don't need to trigger exceptions. [This is the easiest case: It's harder to support doing this while the devices are active, or shrinking the origin (which doesn't achieve much).] --- diff/drivers/md/dm-snap.c 2005-01-28 18:04:03.000000000 +0000 +++ source/drivers/md/dm-snap.c 2005-01-28 20:25:26.000000000 +0000 @@ -931,6 +931,10 @@ if (!snap->valid) continue; + /* Nothing to do if writing beyond end of snapshot */ + if (bio->bi_sector >= dm_table_get_size(snap->table)) + continue; + down_write(&snap->lock); /*