[lvm-devel] LVM2 ./WHATS_NEW tools/toollib.c

Mike Snitzer snitzer at redhat.com
Fri Apr 23 15:39:29 UTC 2010


On Tue, Apr 13 2010 at 10:19pm -0400,
agk at sourceware.org <agk at sourceware.org> wrote:

> CVSROOT:	/cvs/lvm2
> Module name:	LVM2
> Changes by:	agk at sourceware.org	2010-04-14 02:19:49
> 
> Modified files:
> 	.              : WHATS_NEW 
> 	tools          : toollib.c 
> 
> Log message:
> 	Only pass visible LVs to tools in cmdline VG name/tag expansions without -a
> 
> Patches:
> http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/WHATS_NEW.diff?cvsroot=lvm2&r1=1.1516&r2=1.1517
> http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/tools/toollib.c.diff?cvsroot=lvm2&r1=1.193&r2=1.194
> 
> --- LVM2/WHATS_NEW	2010/04/13 23:57:41	1.1516
> +++ LVM2/WHATS_NEW	2010/04/14 02:19:49	1.1517
> @@ -1,5 +1,6 @@
>  Version 2.02.63 -  
>  ================================
> +  Only pass visible LVs to tools in cmdline VG name/tag expansions without -a.
>    Use typedefs for toollib process_each functions.
>    Use C locales and use_mlockall for clvmd.
>    Refactor code related to vg->pvs list and add pv->vg link.
> --- LVM2/tools/toollib.c	2010/04/13 23:57:41	1.193
> +++ LVM2/tools/toollib.c	2010/04/14 02:19:49	1.194
> @@ -125,6 +125,13 @@
>  		if (lv_is_virtual_origin(lvl->lv) && !arg_count(cmd, all_ARG))
>  			continue;
>  
> +		/*
> +		 * Only let hidden LVs through it --all was used or the LVs 
> +		 * were specifically named on the command line.
> +		 */
> +		if (!lvargs_supplied && !lv_is_visible(lvl->lv) && !arg_count(cmd, all_ARG))
> +			continue;
> +
>  		/* Should we process this LV? */
>  		if (process_all)
>  			process_lv = 1;

Given that you've now made this check at a higher level I believe the
following check in _lvs_single() is redundant.  It also serves to
disallow displaying hidden LVs that were specifically named on the
command line:

diff --git a/tools/reporter.c b/tools/reporter.c
index bd3c116..1332cc3 100644
--- a/tools/reporter.c
+++ b/tools/reporter.c
@@ -33,9 +33,6 @@ static int _vgs_single(struct cmd_context *cmd __attribute((unused)),
 static int _lvs_single(struct cmd_context *cmd, struct logical_volume *lv,
 		       void *handle)
 {
-	if (!arg_count(cmd, all_ARG) && !lv_is_visible(lv))
-		return ECMD_PROCESSED;
-
 	if (!report_object(handle, lv->vg, lv, NULL, NULL, NULL)) {
 		stack;
 		return ECMD_FAILED;




More information about the lvm-devel mailing list