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:
parent
8b98c12815
commit
9c1dbeb3f1
@ -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.
|
||||
|
@ -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 "
|
||||
|
@ -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));
|
||||
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user