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-rc8/drivers/md/dm-snap.c =================================================================== --- linux-2.6.26-rc8.orig/drivers/md/dm-snap.c 2008-07-01 18:53:17.000000000 +0200 +++ linux-2.6.26-rc8/drivers/md/dm-snap.c 2008-07-01 18:53:23.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) {