summaryrefslogtreecommitdiff
path: root/tools/lvscan.c
diff options
context:
space:
mode:
authorAlasdair Kergon <agk@redhat.com>2009-10-01 00:35:29 +0000
committerAlasdair Kergon <agk@redhat.com>2009-10-01 00:35:29 +0000
commit78ad1549a53dbaee7679e635c1ba1c6d15506a52 (patch)
tree8cf30c7f8fb1458dd4e226514957c30758deb7f5 /tools/lvscan.c
parent4b12fa1377d2d5bccf30ebac96a2c81644d14ed4 (diff)
downloadlvm2-78ad1549a53dbaee7679e635c1ba1c6d15506a52.tar.gz
Introduce percent_range_t and centralise snapshot full/mirror in-sync checks.
Diffstat (limited to 'tools/lvscan.c')
-rw-r--r--tools/lvscan.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/tools/lvscan.c b/tools/lvscan.c
index 21bf01c0c..a65bd1d32 100644
--- a/tools/lvscan.c
+++ b/tools/lvscan.c
@@ -24,6 +24,7 @@ static int lvscan_single(struct cmd_context *cmd, struct logical_volume *lv,
int inkernel, snap_active = 1;
struct lv_segment *snap_seg = NULL;
float snap_percent; /* fused, fsize; */
+ percent_range_t percent_range;
const char *active_str, *snapshot_str;
@@ -36,15 +37,17 @@ static int lvscan_single(struct cmd_context *cmd, struct logical_volume *lv,
origin_list) {
if (inkernel &&
(snap_active = lv_snapshot_percent(snap_seg->cow,
- &snap_percent)))
- if (snap_percent < 0 || snap_percent >= 100)
+ &snap_percent,
+ &percent_range)))
+ if (percent_range == PERCENT_INVALID)
snap_active = 0;
}
snap_seg = NULL;
} else if (lv_is_cow(lv)) {
if (inkernel &&
- (snap_active = lv_snapshot_percent(lv, &snap_percent)))
- if (snap_percent < 0 || snap_percent >= 100)
+ (snap_active = lv_snapshot_percent(lv, &snap_percent,
+ &percent_range)))
+ if (percent_range == PERCENT_INVALID)
snap_active = 0;
}