1
0
mirror of git://sourceware.org/git/lvm2.git synced 2025-01-03 05:18:29 +03:00

pvs: Hide inaccessible clustered PVs.

Inaccessible clustered PVs can be hidden from pvs -a in the same way as
foreign PVs, rather than showing them as if they do not belong to a VG.
This commit is contained in:
Alasdair G Kergon 2015-03-18 23:31:46 +00:00
parent 87941ccd17
commit 5bf74f2997
2 changed files with 14 additions and 2 deletions

View File

@ -1,5 +1,6 @@
Version 2.02.118 - Version 2.02.118 -
================================= =================================
Remove inaccessible clustered PVs from 'pvs -a'.
Don't invalidate cached orphan information while global lock is held. Don't invalidate cached orphan information while global lock is held.
Avoid rescan of all devices when requested pvscan for removed device. Avoid rescan of all devices when requested pvscan for removed device.
Measure configuration timestamps with nanoseconds when available. Measure configuration timestamps with nanoseconds when available.

View File

@ -175,6 +175,7 @@ const char *skip_dev_dir(struct cmd_context *cmd, const char *vg_name,
* and the command option has been used to ignore clustered vgs. * and the command option has been used to ignore clustered vgs.
* *
* Case c covers the other errors returned when reading the VG. * Case c covers the other errors returned when reading the VG.
* If *skip is 1, it's OK for the caller to read the list of PVs in the VG.
*/ */
static int _ignore_vg(struct volume_group *vg, const char *vg_name, static int _ignore_vg(struct volume_group *vg, const char *vg_name,
struct dm_list *arg_vgnames, int allow_inconsistent, int *skip) struct dm_list *arg_vgnames, int allow_inconsistent, int *skip)
@ -211,7 +212,14 @@ static int _ignore_vg(struct volume_group *vg, const char *vg_name,
} }
} }
if ((read_error == FAILED_CLUSTERED)) {
*skip = 1;
stack; /* Error already logged */
return 1;
}
if (read_error != SUCCESS) { if (read_error != SUCCESS) {
*skip = 0;
log_error("Cannot process volume group %s", vg_name); log_error("Cannot process volume group %s", vg_name);
return 1; return 1;
} }
@ -2718,8 +2726,11 @@ static int _process_pvs_in_vgs(struct cmd_context *cmd, uint32_t flags,
if (_ignore_vg(vg, vg_name, NULL, flags & READ_ALLOW_INCONSISTENT, &skip)) { if (_ignore_vg(vg, vg_name, NULL, flags & READ_ALLOW_INCONSISTENT, &skip)) {
stack; stack;
ret_max = ECMD_FAILED; ret_max = ECMD_FAILED;
release_vg(vg); if (!skip) {
continue; release_vg(vg);
continue;
}
/* Drop through to eliminate a clustered VG's PVs from the devices list */
} }
/* /*