diff options
Diffstat (limited to 'tools/lvscan.c')
-rw-r--r-- | tools/lvscan.c | 82 |
1 files changed, 14 insertions, 68 deletions
diff --git a/tools/lvscan.c b/tools/lvscan.c index 044e2e6b..d0449288 100644 --- a/tools/lvscan.c +++ b/tools/lvscan.c @@ -20,41 +20,8 @@ #include "tools.h" -static int lvscan_single(struct cmd_context *cmd, struct logical_volume *lv); - -int lvscan(struct cmd_context *cmd, int argc, char **argv) -{ - if (argc) { - log_error("No additional command line arguments allowed"); - return EINVALID_CMD_LINE; - } - - return process_each_lv(cmd, argc, argv, LCK_VG_READ, &lvscan_single); - -/*********** FIXME Count! Add private struct to process_each* -* if (!lv_total) -* log_print("no logical volumes found"); -* else { -* log_print -* ("%d logical volumes with %s total in %d volume group%s", -* lv_total, (dummy = -* display_size(lv_capacity_total / 2, SIZE_SHORT)), -* vg_total, vg_total == 1 ? "" : "s"); -* dbg_free(dummy); -* dummy = NULL; -* if (lv_active > 0) -* printf("%d active", lv_active); -* if (lv_active > 0 && lv_total - lv_active > 0) -* printf(" / "); -* if (lv_total - lv_active > 0) -* printf("%d inactive", lv_total - lv_active); -* printf(" logical volumes\n"); -* } -*************/ - -} - -static int lvscan_single(struct cmd_context *cmd, struct logical_volume *lv) +static int lvscan_single(struct cmd_context *cmd, struct logical_volume *lv, + void *handle) { struct dm_info info; int lv_total = 0; @@ -63,7 +30,6 @@ static int lvscan_single(struct cmd_context *cmd, struct logical_volume *lv) char *dummy; const char *active_str, *snapshot_str; -/* FIXME Add -D arg to skip this! */ if (lv_info(lv, &info) && info.exists) active_str = "ACTIVE "; else @@ -76,48 +42,28 @@ static int lvscan_single(struct cmd_context *cmd, struct logical_volume *lv) else snapshot_str = " "; -/********** FIXME Snapshot - if (lv->status & SNAPSHOT) - dummy = - display_size(lv->lv_remap_end * - lv->lv_chunk_size / 2, - SIZE_SHORT); - else -***********/ dummy = display_size(lv->size / 2, SIZE_SHORT); - log_print("%s%s '%s%s/%s' [%s]%s", active_str, snapshot_str, + log_print("%s%s '%s%s/%s' [%s] %s", active_str, snapshot_str, cmd->dev_dir, lv->vg->name, lv->name, dummy, get_alloc_string(lv->alloc)); dbg_free(dummy); - /* FIXME sprintf? */ - -/*********** FIXME Handle segments? - if (lv->segments[0]->stripes > 1 && !(lv->status & SNAPSHOT)) - log_print(" striped[%u]", lv->segments[0]->stripes); -****************/ - -/******** FIXME Device number display & Snapshot - if (arg_count(cmd,blockdevice_ARG)) - printf(" %d:%d", - MAJOR(lv->lv_dev), - MINOR(lv->lv_dev)); - else - if (lv->status & SNAPSHOT) - printf(" of %s", lv->lv_snapshot_org->name); -*****************/ - lv_total++; -/******** FIXME Snapshot - if (lv->status & SNAPSHOT) - lv_capacity_total += - lv->lv_remap_end * lv->lv_chunk_size - else -********/ lv_capacity_total += lv->size; return 0; } + +int lvscan(struct cmd_context *cmd, int argc, char **argv) +{ + if (argc) { + log_error("No additional command line arguments allowed"); + return EINVALID_CMD_LINE; + } + + return process_each_lv(cmd, argc, argv, LCK_VG_READ, NULL, + &lvscan_single); +} |