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

Convert pvchange, pvdisplay, pvscan to use is_orphan()

This commit is contained in:
Bryn M. Reeves 2007-11-02 14:54:40 +00:00
parent 8b98c12815
commit 9c1dbeb3f1
4 changed files with 13 additions and 11 deletions

View File

@ -1,5 +1,6 @@
Version 2.02.29 -
==================================
Convert pvchange, pvdisplay, pvscan to use is_orphan()
Add is_orphan_vg() and change all hardcoded checks to use it.
Detect md superblocks version 1.0, 1.1 and 1.2.
Add _alloc_pv() and _free_pv() from _pv_create() code and fix error paths.

View File

@ -51,7 +51,8 @@ static int _pvchange_single(struct cmd_context *cmd, struct physical_volume *pv,
}
/* If in a VG, must change using volume group. */
if (*pv_vg_name(pv)) {
/* FIXME: handle PVs with no MDAs */
if (!is_orphan(pv)) {
log_verbose("Finding volume group of physical volume \"%s\"",
pv_name);
@ -115,7 +116,7 @@ static int _pvchange_single(struct cmd_context *cmd, struct physical_volume *pv,
}
if (arg_count(cmd, allocatable_ARG)) {
if (!*pv_vg_name(pv) &&
if (is_orphan(pv) &&
!(pv->fmt->features & FMT_ORPHAN_ALLOCATABLE)) {
log_error("Allocatability not supported by orphan "
"%s format PV %s", pv->fmt->name, pv_name);
@ -127,7 +128,7 @@ static int _pvchange_single(struct cmd_context *cmd, struct physical_volume *pv,
if (allocatable && (pv_status(pv) & ALLOCATABLE_PV)) {
log_error("Physical volume \"%s\" is already "
"allocatable", pv_name);
if (*pv_vg_name(pv))
if (!is_orphan(pv))
unlock_vg(cmd, pv_vg_name(pv));
else
unlock_vg(cmd, ORPHAN);
@ -137,7 +138,7 @@ static int _pvchange_single(struct cmd_context *cmd, struct physical_volume *pv,
if (!allocatable && !(pv_status(pv) & ALLOCATABLE_PV)) {
log_error("Physical volume \"%s\" is already "
"unallocatable", pv_name);
if (*pv_vg_name(pv))
if (!is_orphan(pv))
unlock_vg(cmd, pv_vg_name(pv));
else
unlock_vg(cmd, ORPHAN);
@ -180,7 +181,7 @@ static int _pvchange_single(struct cmd_context *cmd, struct physical_volume *pv,
return 0;
}
log_verbose("Changing uuid of %s to %s.", pv_name, uuid);
if (*pv_vg_name(pv)) {
if (!is_orphan(pv)) {
orig_vg_name = pv_vg_name(pv);
orig_pe_alloc_count = pv_pe_alloc_count(pv);
pv->vg_name = ORPHAN;
@ -196,7 +197,7 @@ static int _pvchange_single(struct cmd_context *cmd, struct physical_volume *pv,
}
log_verbose("Updating physical volume \"%s\"", pv_name);
if (*pv_vg_name(pv)) {
if (!is_orphan(pv)) {
if (!vg_write(vg) || !vg_commit(vg)) {
unlock_vg(cmd, pv_vg_name(pv));
log_error("Failed to store physical volume \"%s\" in "

View File

@ -56,7 +56,7 @@ static int _pvdisplay_single(struct cmd_context *cmd,
pv = pvl->pv;
}
if (!*pv_vg_name(pv))
if (is_orphan(pv))
size = pv_size(pv);
else
size = (pv_pe_count(pv) - pv_pe_alloc_count(pv)) *
@ -72,7 +72,7 @@ static int _pvdisplay_single(struct cmd_context *cmd,
log_print("Physical volume \"%s\" of volume group \"%s\" "
"is exported", pv_name, pv_vg_name(pv));
if (!pv_vg_name(pv))
if (is_orphan(pv))
log_print("\"%s\" is a new physical volume of \"%s\"",
pv_name, display_size(cmd, size));

View File

@ -62,7 +62,7 @@ static void _pvscan_display_single(struct cmd_context *cmd,
sprintf(pv_tmp_name, "%s", pv_dev_name(pv));
}
if (!*pv_vg_name(pv)) {
if (is_orphan(pv)) {
log_print("PV %-*s %-*s %s [%s]",
pv_max_name_len, pv_tmp_name,
vg_max_name_len, " ",
@ -144,7 +144,7 @@ int pvscan(struct cmd_context *cmd, int argc __attribute((unused)),
if ((arg_count(cmd, exported_ARG)
&& !(pv_status(pv) & EXPORTED_VG))
|| (arg_count(cmd, novolumegroup_ARG) && (*pv_vg_name(pv)))) {
|| (arg_count(cmd, novolumegroup_ARG) && (!is_orphan(pv)))) {
list_del(&pvl->list);
continue;
}
@ -161,7 +161,7 @@ int pvscan(struct cmd_context *cmd, int argc __attribute((unused)),
********/
pvs_found++;
if (!*pv_vg_name(pv)) {
if (is_orphan(pv)) {
new_pvs_found++;
size_new += pv_size(pv);
size_total += pv_size(pv);