summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/activate/activate.c12
-rw-r--r--lib/activate/activate.h6
-rw-r--r--lib/activate/dev_manager.c3
-rw-r--r--lib/activate/dev_manager.h3
-rw-r--r--lib/report/report.c10
-rw-r--r--tools/lvscan.c3
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;
}