diff options
-rw-r--r-- | lib/metadata/metadata-exported.h | 3 | ||||
-rw-r--r-- | lib/metadata/metadata.c | 15 | ||||
-rw-r--r-- | liblvm/lvm_vg.c | 2 | ||||
-rw-r--r-- | tools/vgcreate.c | 2 | ||||
-rw-r--r-- | tools/vgextend.c | 2 |
5 files changed, 18 insertions, 6 deletions
diff --git a/lib/metadata/metadata-exported.h b/lib/metadata/metadata-exported.h index bf830aae..ebaea928 100644 --- a/lib/metadata/metadata-exported.h +++ b/lib/metadata/metadata-exported.h @@ -453,7 +453,8 @@ int vg_remove_check(struct volume_group *vg); int vg_remove(struct volume_group *vg); int vg_rename(struct cmd_context *cmd, struct volume_group *vg, const char *new_name); -int vg_extend(struct volume_group *vg, int pv_count, char **pv_names); +int vg_extend(struct volume_group *vg, int pv_count, char **pv_names, + struct pvcreate_params *pp); int vg_reduce(struct volume_group *vg, char *pv_name); int vg_set_extent_size(struct volume_group *vg, uint32_t new_extent_size); int vg_set_max_lv(struct volume_group *vg, uint32_t max_lv); diff --git a/lib/metadata/metadata.c b/lib/metadata/metadata.c index b6f84d7c..5f65d263 100644 --- a/lib/metadata/metadata.c +++ b/lib/metadata/metadata.c @@ -582,7 +582,18 @@ static int vg_extend_single_pv(struct volume_group *vg, char *pv_name, return 1; } -int vg_extend(struct volume_group *vg, int pv_count, char **pv_names) +/* + * Extend a VG by a single PV / device path + * + * Parameters: + * - vg: handle of volume group to extend by 'pv_name' + * - pv_count: count of device paths of PVs + * - pv_names: device paths of PVs to add to VG + * - pp: parameters to pass to implicit pvcreate; if NULL, do not pvcreate + * + */ +int vg_extend(struct volume_group *vg, int pv_count, char **pv_names, + struct pvcreate_params *pp) { int i; @@ -591,7 +602,7 @@ int vg_extend(struct volume_group *vg, int pv_count, char **pv_names) /* attach each pv */ for (i = 0; i < pv_count; i++) { - if (!vg_extend_single_pv(vg, pv_names[i], NULL)) + if (!vg_extend_single_pv(vg, pv_names[i], pp)) goto bad; } diff --git a/liblvm/lvm_vg.c b/liblvm/lvm_vg.c index a0a7b1fd..0c097c03 100644 --- a/liblvm/lvm_vg.c +++ b/liblvm/lvm_vg.c @@ -60,7 +60,7 @@ int lvm_vg_extend(vg_t vg, const char *device) return -1; } - if (!vg_extend(vg, 1, (char **) &device)) { + if (!vg_extend(vg, 1, (char **) &device, NULL)) { unlock_vg(vg->cmd, VG_ORPHANS); return -1; } diff --git a/tools/vgcreate.c b/tools/vgcreate.c index 2100877c..d171026b 100644 --- a/tools/vgcreate.c +++ b/tools/vgcreate.c @@ -63,7 +63,7 @@ int vgcreate(struct cmd_context *cmd, int argc, char **argv) } /* attach the pv's */ - if (!vg_extend(vg, argc - 1, argv + 1)) + if (!vg_extend(vg, argc - 1, argv + 1, NULL)) goto_bad; if (vp_new.max_lv != vg->max_lv) diff --git a/tools/vgextend.c b/tools/vgextend.c index b659492e..9fa7d317 100644 --- a/tools/vgextend.c +++ b/tools/vgextend.c @@ -54,7 +54,7 @@ int vgextend(struct cmd_context *cmd, int argc, char **argv) goto_bad; /* extend vg */ - if (!vg_extend(vg, argc, argv)) + if (!vg_extend(vg, argc, argv, NULL)) goto_bad; /* ret > 0 */ |