Version 2.02.101 -
===================================
+ Refresh existing VG before autoactivation (event retrigger/device reappeared).
Fix vgck to notice on-disk corruption even if lvmetad is used.
Move mpath device filter before partitioned filter (which opens devices).
Split partitioned filter out of lvm_type filter.
struct volume_group *vg;
int consistent = 0;
struct id vgid_raw;
+ int r = 0;
/* TODO: add support for partial and clustered VGs */
if (partial)
if (!id_read_format(&vgid_raw, vgid))
return_0;
- /* NB. This is safe because we know lvmetad is running and we won't hit
- * disk. */
+ /* NB. This is safe because we know lvmetad is running and we won't hit disk. */
if (!(vg = vg_read_internal(cmd, NULL, (const char *) &vgid_raw, 0, &consistent)))
return 1;
if (vg_is_clustered(vg)) {
- release_vg(vg);
- return 1;
+ r = 1; goto out;
+ }
+
+ if (!vg_refresh_visible(vg->cmd, vg)) {
+ log_error("%s: refresh before autoactivation failed.", vg->name);
+ goto out;
}
if (!vgchange_activate(vg->cmd, vg, activate)) {
log_error("%s: autoactivation failed.", vg->name);
- release_vg(vg);
- return 0;
+ goto out;
}
+ r = 1;
+
+out:
release_vg(vg);
- return 1;
+ return r;
}
static int _pvscan_lvmetad(struct cmd_context *cmd, int argc, char **argv)