Do not allow more than one merging snapshot. It is pointless to merge two snapshot simultaneously. Allowing multiple merging snapshots would complicate things later. Signed-off-by: Mikulas Patocka --- drivers/md/dm-snap.c | 7 +++++++ 1 file changed, 7 insertions(+) Index: linux-2.6.25.3/drivers/md/dm-snap.c =================================================================== --- linux-2.6.25.3.orig/drivers/md/dm-snap.c 2008-05-23 21:05:38.000000000 +0200 +++ linux-2.6.25.3/drivers/md/dm-snap.c 2008-05-23 21:05:42.000000000 +0200 @@ -228,6 +228,13 @@ static int register_snapshot(struct dm_s struct block_device *bdev = snap->origin->bdev; down_write(&_origins_lock); + + /* Do not allow more than one merging snapshot */ + if (is_merge(snap->ti) && __find_merging_snapshot(bdev)) { + up_write(&_origins_lock); + return -EINVAL; + } + o = __lookup_origin(bdev); if (!o) {