[lvm-devel] [PATCH 3/14] Properly enforce cluster locking in _vg_lock_and_read.

Dave Wysochanski dwysocha at redhat.com
Thu Jan 22 18:17:03 UTC 2009


On Thu, 2009-01-22 at 11:09 +0100, Petr Rockai wrote:
> Wed Jan 21 15:52:36 CET 2009  Petr Rockai <me at mornfall.net>
>   * Properly enforce cluster locking in _vg_lock_and_read.
> diff -rN -u -p old-temp.4430/lib/metadata/metadata.c new-temp.4430/lib/metadata/metadata.c
> --- old-temp.4430/lib/metadata/metadata.c	2009-01-22 11:02:36.870777955 +0100
> +++ new-temp.4430/lib/metadata/metadata.c	2009-01-22 11:02:36.918780355 +0100
> @@ -2595,6 +2595,12 @@ static vg_t *_vg_lock_and_read(struct cm
>  		goto_bad;
>  	}
>  
> +	if (vg_is_clustered(vg) && !locking_is_clustered()) {
> +		log_error("Skipping clustered volume group %s", vg->name);
> +		failure |= FAILED_CLUSTERED;
> +		goto_bad;
> +	}
> +
>  	/* consistent == 0 when VG is not found, but failed == FAILED_NOTFOUND */
>  	if (!consistent && !failure) {
>  		if (!(vg = _recover_vg(cmd, lock, vg_name, vgid, lock_flags))) {
> @@ -2605,7 +2611,7 @@ static vg_t *_vg_lock_and_read(struct cm
>  		}
>  	}
>  
> -	failure |= _vg_check_status(vg, status_flags);
> +	failure |= _vg_check_status(vg, status_flags & ~CLUSTERED);
>  	if (failure)
>  		goto_bad;
>  
> 


With this patch, is there any point in leaving that CLUSTERED flag check
in _vg_check_status()?  The clustered flag set in vg_read() is not
needed either (check is mandatory now - flag doesn't mean anything).




More information about the lvm-devel mailing list