diff options
author | Alasdair Kergon <agk@redhat.com> | 2009-10-01 00:35:29 +0000 |
---|---|---|
committer | Alasdair Kergon <agk@redhat.com> | 2009-10-01 00:35:29 +0000 |
commit | 78ad1549a53dbaee7679e635c1ba1c6d15506a52 (patch) | |
tree | 8cf30c7f8fb1458dd4e226514957c30758deb7f5 /tools/lvscan.c | |
parent | 4b12fa1377d2d5bccf30ebac96a2c81644d14ed4 (diff) | |
download | lvm2-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.c | 11 |
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; } |