1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-21 13:34:40 +03:00

Refactor vg_extend - add vg_extend_single_pv.

Simple refactor to setup future changes related to implicit pvcreates.
Should be no functional change.
This commit is contained in:
Dave Wysochanski 2009-10-05 20:02:04 +00:00
parent 437219e27d
commit a80fc69320

View File

@ -553,22 +553,38 @@ int vg_remove(struct volume_group *vg)
return ret;
}
/*
* Extend a VG by a single PV / device path
*
* Parameters:
* - vg: handle of volume group to extend by 'pv_name'
* - pv_name: device path of PV to add to VG
*
*/
static int vg_extend_single_pv(struct volume_group *vg, char *pv_name)
{
struct physical_volume *pv;
if (!(pv = pv_by_path(vg->fid->fmt->cmd, pv_name))) {
log_error("%s not identified as an existing "
"physical volume", pv_name);
return 0;
}
if (!add_pv_to_vg(vg, pv_name, pv))
return 0;
return 1;
}
int vg_extend(struct volume_group *vg, int pv_count, char **pv_names)
{
int i;
struct physical_volume *pv;
if (_vg_bad_status_bits(vg, RESIZEABLE_VG))
return 0;
/* attach each pv */
for (i = 0; i < pv_count; i++) {
if (!(pv = pv_by_path(vg->fid->fmt->cmd, pv_names[i]))) {
log_error("%s not identified as an existing "
"physical volume", pv_names[i]);
goto bad;
}
if (!add_pv_to_vg(vg, pv_names[i], pv))
if (!vg_extend_single_pv(vg, pv_names[i]))
goto bad;
}