[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