mirror of
git://sourceware.org/git/lvm2.git
synced 2025-01-03 05:18:29 +03:00
Add a hint for manual revert if there's an error in pv_write, vg_write, vg_commit for pvresize.
This commit is contained in:
parent
150e43a05c
commit
da721ac1ef
@ -35,6 +35,7 @@ static int _pv_resize_single(struct cmd_context *cmd,
|
|||||||
const char *pv_name = pv_dev_name(pv);
|
const char *pv_name = pv_dev_name(pv);
|
||||||
const char *vg_name = pv_vg_name(pv);
|
const char *vg_name = pv_vg_name(pv);
|
||||||
struct volume_group *old_vg = vg;
|
struct volume_group *old_vg = vg;
|
||||||
|
int vg_needs_pv_write = 0;
|
||||||
|
|
||||||
if (is_orphan_vg(vg_name)) {
|
if (is_orphan_vg(vg_name)) {
|
||||||
if (!lock_vol(cmd, vg_name, LCK_VG_WRITE)) {
|
if (!lock_vol(cmd, vg_name, LCK_VG_WRITE)) {
|
||||||
@ -100,7 +101,8 @@ static int _pv_resize_single(struct cmd_context *cmd,
|
|||||||
|
|
||||||
/* Write PV label only if this an orphan PV or it has 2nd mda. */
|
/* Write PV label only if this an orphan PV or it has 2nd mda. */
|
||||||
if ((is_orphan_vg(vg_name) ||
|
if ((is_orphan_vg(vg_name) ||
|
||||||
fid_get_mda_indexed(vg->fid, (const char *) &pv->id, ID_LEN, 1)) &&
|
(vg_needs_pv_write = (fid_get_mda_indexed(vg->fid,
|
||||||
|
(const char *) &pv->id, ID_LEN, 1) != NULL))) &&
|
||||||
!pv_write(cmd, pv, 1)) {
|
!pv_write(cmd, pv, 1)) {
|
||||||
log_error("Failed to store physical volume \"%s\"",
|
log_error("Failed to store physical volume \"%s\"",
|
||||||
pv_name);
|
pv_name);
|
||||||
@ -120,6 +122,9 @@ static int _pv_resize_single(struct cmd_context *cmd,
|
|||||||
r = 1;
|
r = 1;
|
||||||
|
|
||||||
out:
|
out:
|
||||||
|
if (!r && vg_needs_pv_write)
|
||||||
|
log_error("Use pvcreate and vgcfgrestore "
|
||||||
|
"to repair from archived metadata.");
|
||||||
unlock_vg(cmd, vg_name);
|
unlock_vg(cmd, vg_name);
|
||||||
if (!old_vg)
|
if (!old_vg)
|
||||||
free_vg(vg);
|
free_vg(vg);
|
||||||
|
Loading…
Reference in New Issue
Block a user