A function to find merging snapshot for a given origin device. Signed-off-by: Mikulas Patocka --- drivers/md/dm-snap.c | 16 ++++++++++++++++ 1 file changed, 16 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:31.000000000 +0200 +++ linux-2.6.26-devel/drivers/md/dm-snap.c 2008-07-14 20:23:38.000000000 +0200 @@ -197,6 +197,22 @@ static struct origin *__lookup_origin(st return NULL; } +static struct dm_snapshot *__find_merging_snapshot(struct block_device *origin) +{ + struct origin *o; + struct dm_snapshot *snap; + + o = __lookup_origin(origin); + if (!o) + return NULL; + + list_for_each_entry (snap, &o->snapshots, list) + if (is_merge(snap->ti)) + return snap; + + return NULL; +} + static void __insert_origin(struct origin *o) { struct list_head *sl = &_origins[origin_hash(o->bdev)];