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.26-devel/drivers/md/dm-snap.c =================================================================== --- linux-2.6.26-devel.orig/drivers/md/dm-snap.c 2008-07-14 20:23:38.000000000 +0200 +++ linux-2.6.26-devel/drivers/md/dm-snap.c 2008-07-14 20:23:43.000000000 +0200 @@ -229,6 +229,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) {