[lvm-devel] [PATCH 10/17] Add pe_start_locked parameter to pv_create fn.
Petr Rockai
prockai at redhat.com
Fri Jan 28 16:39:56 UTC 2011
Peter Rajnoha <prajnoha at redhat.com> writes:
> So we can define and hint the metadata area handling code that the
> pe_start is supposed to be firmly set to a certain value and it should
> not be changed during calculations.
All clear. However, it adds another parameter to an already huge
list. Please consider other options. Also, not using int as a bool would
help in lots of places, but I guess we are stuck with that. (You could
for example create a structure for the parameters, so at least at the
call site, we have know which parameter means what... having a 10-tuple
of integers is not exactly informative.)
> Signed-off-by: Peter Rajnoha <prajnoha at redhat.com>
Reviewed-by: Petr Rockai <prockai at redhat.com>
> ---
> lib/metadata/metadata-exported.h | 1 +
> lib/metadata/metadata.c | 4 +++-
> tools/vgconvert.c | 2 +-
> 3 files changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/lib/metadata/metadata-exported.h b/lib/metadata/metadata-exported.h
> index da62764..627d098 100644
> --- a/lib/metadata/metadata-exported.h
> +++ b/lib/metadata/metadata-exported.h
> @@ -394,6 +394,7 @@ struct physical_volume *pv_create(const struct cmd_context *cmd,
> unsigned long data_alignment,
> unsigned long data_alignment_offset,
> uint64_t pe_start,
> + int pe_start_locked,
> uint32_t existing_extent_count,
> uint32_t existing_extent_size,
> int pvmetadatacopies, uint64_t pvmetadatasize,
> diff --git a/lib/metadata/metadata.c b/lib/metadata/metadata.c
> index 591f7b5..419dcfc 100644
> --- a/lib/metadata/metadata.c
> +++ b/lib/metadata/metadata.c
> @@ -1486,7 +1486,8 @@ struct physical_volume * pvcreate_single(struct cmd_context *cmd,
> dm_list_init(&mdas);
> if (!(pv = pv_create(cmd, dev, pp->idp, pp->size,
> pp->data_alignment, pp->data_alignment_offset,
> - pp->pe_start, pp->extent_count, pp->extent_size,
> + pp->pe_start, pp->pe_start ? 1 : 0,
> + pp->extent_count, pp->extent_size,
> pp->pvmetadatacopies, pp->pvmetadatasize,
> pp->metadataignore, &mdas))) {
> log_error("Failed to setup physical volume \"%s\"", pv_name);
> @@ -1591,6 +1592,7 @@ struct physical_volume *pv_create(const struct cmd_context *cmd,
> unsigned long data_alignment,
> unsigned long data_alignment_offset,
> uint64_t pe_start,
> + int pe_start_locked,
> uint32_t existing_extent_count,
> uint32_t existing_extent_size,
> int pvmetadatacopies, uint64_t pvmetadatasize,
> diff --git a/tools/vgconvert.c b/tools/vgconvert.c
> index acae0fc..81ff616 100644
> --- a/tools/vgconvert.c
> +++ b/tools/vgconvert.c
> @@ -125,7 +125,7 @@ static int vgconvert_single(struct cmd_context *cmd, const char *vg_name,
> dm_list_init(&mdas);
> if (!(pv = pv_create(cmd, pv_dev(existing_pv),
> &existing_pv->id, size, 0, 0,
> - pe_start, pv_pe_count(existing_pv),
> + pe_start, 1, pv_pe_count(existing_pv),
> pv_pe_size(existing_pv), pvmetadatacopies,
> pvmetadatasize, 0, &mdas))) {
> log_error("Failed to setup physical volume \"%s\"",
More information about the lvm-devel
mailing list