[lvm-devel] [PATCH 5/9] Fix lv_is_visible to handle virtual origin.

Milan Broz mbroz at redhat.com
Wed May 13 15:24:14 UTC 2009


Snapshot is visible if its origin is marked visible,
or if the origin is virtual.

Signed-off-by: Milan Broz <mbroz at redhat.com>
---
 lib/metadata/snapshot_manip.c |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/lib/metadata/snapshot_manip.c b/lib/metadata/snapshot_manip.c
index e186dff..0509fe0 100644
--- a/lib/metadata/snapshot_manip.c
+++ b/lib/metadata/snapshot_manip.c
@@ -30,8 +30,15 @@ int lv_is_cow(const struct logical_volume *lv)
 
 int lv_is_visible(const struct logical_volume *lv)
 {
-	if (lv_is_cow(lv))
-		return lv_is_visible(find_cow(lv)->lv);
+	if (lv->status & SNAPSHOT)
+		return 0;
+
+	if (lv_is_cow(lv)) {
+		if (lv_is_virtual_origin(origin_from_cow(lv)))
+			return 1;
+
+		return lv_is_visible(origin_from_cow(lv));
+	}
 
 	return lv->status & VISIBLE_LV ? 1 : 0;
 }
-- 
1.6.2.4




More information about the lvm-devel mailing list