diff options
-rw-r--r-- | lib/activate/activate.c | 12 | ||||
-rw-r--r-- | lib/activate/activate.h | 6 | ||||
-rw-r--r-- | lib/activate/dev_manager.c | 3 | ||||
-rw-r--r-- | lib/activate/dev_manager.h | 3 | ||||
-rw-r--r-- | lib/report/report.c | 10 | ||||
-rw-r--r-- | tools/lvscan.c | 3 |
6 files changed, 18 insertions, 19 deletions
diff --git a/lib/activate/activate.c b/lib/activate/activate.c index 93782092..b9c7c126 100644 --- a/lib/activate/activate.c +++ b/lib/activate/activate.c @@ -95,12 +95,12 @@ int lv_info_by_lvid(struct cmd_context *cmd, const char *lvid_s, { return 0; } -int lv_snapshot_percent(struct logical_volume *lv, float *percent) +int lv_snapshot_percent(const struct logical_volume *lv, float *percent) { return 0; } -int lv_mirror_percent(struct logical_volume *lv, int wait, float *percent, - uint32_t *event_nr) +int lv_mirror_percent(struct cmd_context *cmd, struct logical_volume *lv, + int wait, float *percent, uint32_t *event_nr) { return 0; } @@ -407,7 +407,7 @@ int lv_info_by_lvid(struct cmd_context *cmd, const char *lvid_s, /* * Returns 1 if percent set, else 0 on failure. */ -int lv_snapshot_percent(struct logical_volume *lv, float *percent) +int lv_snapshot_percent(const struct logical_volume *lv, float *percent) { int r; struct dev_manager *dm; @@ -427,8 +427,8 @@ int lv_snapshot_percent(struct logical_volume *lv, float *percent) } /* FIXME Merge with snapshot_percent */ -int lv_mirror_percent(struct cmd_context *cmd, struct logical_volume *lv, int wait, float *percent, - uint32_t *event_nr) +int lv_mirror_percent(struct cmd_context *cmd, struct logical_volume *lv, + int wait, float *percent, uint32_t *event_nr) { int r; struct dev_manager *dm; diff --git a/lib/activate/activate.h b/lib/activate/activate.h index 0a62c322..c6c6f3f1 100644 --- a/lib/activate/activate.h +++ b/lib/activate/activate.h @@ -70,9 +70,9 @@ int lv_activation_filter(struct cmd_context *cmd, const char *lvid_s, /* * Returns 1 if percent has been set, else 0. */ -int lv_snapshot_percent(struct logical_volume *lv, float *percent); -int lv_mirror_percent(struct cmd_context *cmd, struct logical_volume *lv, int wait, float *percent, - uint32_t *event_nr); +int lv_snapshot_percent(const struct logical_volume *lv, float *percent); +int lv_mirror_percent(struct cmd_context *cmd, struct logical_volume *lv, + int wait, float *percent, uint32_t *event_nr); /* * Return number of LVs in the VG that are active. diff --git a/lib/activate/dev_manager.c b/lib/activate/dev_manager.c index 9bcd253b..ee241b3f 100644 --- a/lib/activate/dev_manager.c +++ b/lib/activate/dev_manager.c @@ -432,7 +432,8 @@ void dev_manager_exit(void) } int dev_manager_snapshot_percent(struct dev_manager *dm, - struct logical_volume *lv, float *percent) + const struct logical_volume *lv, + float *percent) { char *name; const char *dlid; diff --git a/lib/activate/dev_manager.h b/lib/activate/dev_manager.h index 19b6572c..ad233184 100644 --- a/lib/activate/dev_manager.h +++ b/lib/activate/dev_manager.h @@ -41,7 +41,8 @@ int dev_manager_info(struct dm_pool *mem, const char *name, const struct logical_volume *lv, int mknodes, int with_open_count, struct dm_info *info); int dev_manager_snapshot_percent(struct dev_manager *dm, - struct logical_volume *lv, float *percent); + const struct logical_volume *lv, + float *percent); int dev_manager_mirror_percent(struct dev_manager *dm, struct logical_volume *lv, int wait, float *percent, uint32_t *event_nr); diff --git a/lib/report/report.c b/lib/report/report.c index cf8f71fe..3ba1fcda 100644 --- a/lib/report/report.c +++ b/lib/report/report.c @@ -377,7 +377,7 @@ static int _lvstatus_disp(struct report_handle *rh, struct field *field, /* Snapshot dropped? */ if (info.live_table && lv_is_cow(lv) && - (!lv_snapshot_percent(find_cow(lv)->cow, &snap_percent) || + (!lv_snapshot_percent(lv, &snap_percent) || snap_percent < 0 || snap_percent >= 100)) { repstr[0] = toupper(repstr[0]); if (info.suspended) @@ -837,7 +837,6 @@ static int _snpercent_disp(struct report_handle *rh, struct field *field, const void *data) { const struct logical_volume *lv = (const struct logical_volume *) data; - struct lv_segment *snap_seg; struct lvinfo info; float snap_percent; uint64_t *sortval; @@ -848,16 +847,15 @@ static int _snpercent_disp(struct report_handle *rh, struct field *field, return 0; } - if (!(snap_seg = find_cow(lv)) || - (lv_info(lv->vg->cmd, snap_seg->cow, &info, 0) && !info.exists)) { + if (!lv_is_cow(lv) || + (lv_info(lv->vg->cmd, lv, &info, 0) && !info.exists)) { field->report_string = ""; *sortval = UINT64_C(0); field->sort_value = sortval; return 1; } - if (!lv_snapshot_percent(snap_seg->cow, &snap_percent) - || snap_percent < 0) { + if (!lv_snapshot_percent(lv, &snap_percent) || snap_percent < 0) { field->report_string = "100.00"; *sortval = UINT64_C(100); field->sort_value = sortval; diff --git a/tools/lvscan.c b/tools/lvscan.c index bad372ef..1bd467d3 100644 --- a/tools/lvscan.c +++ b/tools/lvscan.c @@ -45,8 +45,7 @@ static int lvscan_single(struct cmd_context *cmd, struct logical_volume *lv, snap_seg = NULL; } else if (lv_is_cow(lv)) { if (inkernel && - (snap_active = lv_snapshot_percent(find_cow(lv)->cow, - &snap_percent))) + (snap_active = lv_snapshot_percent(lv, &snap_percent))) if (snap_percent < 0 || snap_percent >= 100) snap_active = 0; } |