All of lore.kernel.org
 help / color / mirror / Atom feed
* pvdisplay --maps
@ 2007-05-24  8:58 David Robinson
  2007-05-24 20:15 ` Dave Wysochanski
  0 siblings, 1 reply; 2+ messages in thread
From: David Robinson @ 2007-05-24  8:58 UTC (permalink / raw)
  To: lvm-devel

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)



^ permalink raw reply	[flat|nested] 2+ messages in thread

* pvdisplay --maps
  2007-05-24  8:58 pvdisplay --maps David Robinson
@ 2007-05-24 20:15 ` Dave Wysochanski
  0 siblings, 0 replies; 2+ messages in thread
From: Dave Wysochanski @ 2007-05-24 20:15 UTC (permalink / raw)
  To: lvm-devel

On Thu, 2007-05-24 at 18:58 +1000, David Robinson wrote:
> 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

Thanks - looks good.  Minor comments below.

> 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;
> +}
> +

Some minor whitespace problems here (mix of tabs / spaces) - will fix.

Also we probably want to display the "Type" of the extents, as well as
"Logical volume" instead of "LV Name", since that more closely matches
the output of lvdisplay.  And an 'else' clause here to explicitly state
"FREE" for PEs that are not allocated.


Index: LVM2/lib/display/display.c
===================================================================
--- LVM2.orig/lib/display/display.c	2007-05-24 15:52:53.000000000 -0400
+++ LVM2/lib/display/display.c	2007-05-24 15:55:56.000000000 -0400
@@ -260,27 +260,31 @@ void pvdisplay_colons(struct physical_vo
 
 void pvdisplay_segments(struct physical_volume *pv)
 {
-        struct pv_segment *seg;
+	struct pv_segment *seg;
 
-        log_print("--- Segments ---");
+	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->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("  Type\t\t%s",
+				  seg->lvseg->segtype->ops->name(seg->lvseg));
+			log_print("  Logical volume\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);
-		}
-        }
+				  seg->lvseg->le, seg->lvseg->le +
+				  seg->lvseg->len - 1);
+		} else
+			log_print("  FREE");
+	}
 
-        log_print(" ");
+	log_print(" ");
 	return;
 }
 




^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2007-05-24 20:15 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-05-24  8:58 pvdisplay --maps David Robinson
2007-05-24 20:15 ` Dave Wysochanski

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.