mirror of
git://sourceware.org/git/lvm2.git
synced 2025-01-02 01:18:26 +03:00
Allow calling fill_default_pvcreate_params from tools.
We need defaults for pvcreate_params at a higher level - this will allow us to use a common function from the tools to take defaults, then fill in any non-defaults from the commandline. Future patches will refactor vgcreate/vgextend to call this function if one or more pvcreate parameters are given on the commandline.
This commit is contained in:
parent
29123aa652
commit
c24a4ff2cc
@ -371,6 +371,7 @@ struct pvcreate_params {
|
|||||||
struct physical_volume *pvcreate_single(struct cmd_context *cmd,
|
struct physical_volume *pvcreate_single(struct cmd_context *cmd,
|
||||||
const char *pv_name,
|
const char *pv_name,
|
||||||
struct pvcreate_params *pp);
|
struct pvcreate_params *pp);
|
||||||
|
void fill_default_pvcreate_params(struct pvcreate_params *pp);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Utility functions
|
* Utility functions
|
||||||
|
@ -1272,7 +1272,7 @@ static int pvcreate_check(struct cmd_context *cmd, const char *name,
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void fill_default_pvcreate_params(struct pvcreate_params *pp)
|
void fill_default_pvcreate_params(struct pvcreate_params *pp)
|
||||||
{
|
{
|
||||||
memset(pp, 0, sizeof(*pp));
|
memset(pp, 0, sizeof(*pp));
|
||||||
pp->zero = 0;
|
pp->zero = 0;
|
||||||
|
@ -41,6 +41,8 @@ vg_t lvm_vg_create(lvm_t libh, const char *vg_name)
|
|||||||
|
|
||||||
int lvm_vg_extend(vg_t vg, const char *device)
|
int lvm_vg_extend(vg_t vg, const char *device)
|
||||||
{
|
{
|
||||||
|
struct pvcreate_params pp;
|
||||||
|
|
||||||
if (vg_read_error(vg))
|
if (vg_read_error(vg))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
@ -52,15 +54,8 @@ int lvm_vg_extend(vg_t vg, const char *device)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If device not initialized, pvcreate it */
|
fill_default_pvcreate_params(&pp);
|
||||||
if (!pv_by_path(vg->cmd, device) &&
|
if (!vg_extend(vg, 1, (char **) &device, &pp)) {
|
||||||
(!pvcreate_single(vg->cmd, device, NULL))) {
|
|
||||||
log_error("Unable to initialize device for LVM use");
|
|
||||||
unlock_vg(vg->cmd, VG_ORPHANS);
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!vg_extend(vg, 1, (char **) &device, NULL)) {
|
|
||||||
unlock_vg(vg->cmd, VG_ORPHANS);
|
unlock_vg(vg->cmd, VG_ORPHANS);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user