[lvm-devel] pvdisplay --maps
David Robinson
zxvdr.au at gmail.com
Thu May 24 08:58:30 UTC 2007
Patch below adds the -m/--maps option to pvdisplay. Addresses BZ 149814.
-m, --maps
Display the mapping of physical extents to logical
volumes and logical extents.
Cheers,
Dave
diff -urp LVM2.orig/lib/display/display.c LVM2/lib/display/display.c
--- LVM2.orig/lib/display/display.c 2006-12-01 09:11:40.000000000 +1000
+++ LVM2/lib/display/display.c 2007-05-24 18:45:13.000000000 +1000
@@ -258,6 +258,32 @@ void pvdisplay_colons(struct physical_vo
return;
}
+void pvdisplay_segments(struct physical_volume *pv)
+{
+ struct pv_segment *seg;
+
+ log_print("--- Segments ---");
+
+ list_iterate_items(seg, &pv->segments) {
+ if (seg->len == pv->pe_count) continue;
+ log_print("Physical extent %u to %u:",
+ seg->pe, seg->pe + seg->len - 1);
+
+ if (seg->lvseg) {
+ log_print(" LV Name\t\t%s%s/%s",
+ seg->lvseg->lv->vg->cmd->dev_dir,
+ seg->lvseg->lv->vg->name,
+ seg->lvseg->lv->name);
+ log_print(" Logical extents\t%d to %d",
+ seg->lvseg->le, seg->lvseg->le +
+ seg->lvseg->len - 1);
+ }
+ }
+
+ log_print(" ");
+ return;
+}
+
/* FIXME Include label fields */
void pvdisplay_full(struct cmd_context *cmd, struct physical_volume *pv,
void *handle __attribute((unused)))
diff -urp LVM2.orig/lib/display/display.h LVM2/lib/display/display.h
--- LVM2.orig/lib/display/display.h 2006-05-10 07:23:50.000000000 +1000
+++ LVM2/lib/display/display.h 2007-05-24 18:45:13.000000000 +1000
@@ -31,6 +31,7 @@ char *display_uuid(char *uuidstr);
void display_stripe(const struct lv_segment *seg, uint32_t s, const
char *pre);
void pvdisplay_colons(struct physical_volume *pv);
+void pvdisplay_segments(struct physical_volume *pv);
void pvdisplay_full(struct cmd_context *cmd, struct physical_volume *pv,
void *handle);
int pvdisplay_short(struct cmd_context *cmd, struct volume_group *vg,
diff -urp LVM2.orig/tools/pvdisplay.c LVM2/tools/pvdisplay.c
--- LVM2.orig/tools/pvdisplay.c 2006-10-17 02:29:40.000000000 +1000
+++ LVM2/tools/pvdisplay.c 2007-05-24 18:45:13.000000000 +1000
@@ -71,8 +71,8 @@ static int _pvdisplay_single(struct cmd_
pvdisplay_full(cmd, pv, handle);
- if (!arg_count(cmd, maps_ARG))
- goto out;
+ if (arg_count(cmd, maps_ARG))
+ pvdisplay_segments(pv);
out:
if (pv->vg_name)
More information about the lvm-devel
mailing list