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.28-rc5-devel/drivers/md/dm-snap.c =================================================================== --- linux-2.6.28-rc5-devel.orig/drivers/md/dm-snap.c 2008-11-25 16:11:27.000000000 +0100 +++ linux-2.6.28-rc5-devel/drivers/md/dm-snap.c 2008-11-25 16:11:31.000000000 +0100 @@ -234,6 +234,13 @@ static int register_snapshot(struct dm_s return -ENOMEM; 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)