summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Teigland <teigland@redhat.com>2016-04-27 15:06:43 -0500
committerDavid Teigland <teigland@redhat.com>2016-05-02 16:10:11 -0500
commited21b11576a4fd09e2afaae4aa5d21cd35d5aaae (patch)
treec58fba8626030aad509d2c723501754ba36e0ac1
parent795e47cec572b13329eecbcfbbc0aa70f0bccc16 (diff)
downloadlvm2-ed21b11576a4fd09e2afaae4aa5d21cd35d5aaae.tar.gz
pvscan: fix errors for single dev scan while lvmetad is disabled
While lvmetad was disabled, 'pvscan --cache dev' would produce confusing error messages.
-rw-r--r--tools/pvscan.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/tools/pvscan.c b/tools/pvscan.c
index d93773a1c..50753fdc0 100644
--- a/tools/pvscan.c
+++ b/tools/pvscan.c
@@ -257,6 +257,7 @@ static int _pvscan_lvmetad(struct cmd_context *cmd, int argc, char **argv)
int ret = ECMD_PROCESSED;
struct device *dev;
const char *pv_name;
+ const char *reason = NULL;
int32_t major = -1;
int32_t minor = -1;
int devno_args = 0;
@@ -309,6 +310,18 @@ static int _pvscan_lvmetad(struct cmd_context *cmd, int argc, char **argv)
}
/*
+ * When lvmetad is disabled, all devices need to be rescanned,
+ * i.e. the !argc case above, pvscan --cache.
+ */
+ if (lvmetad_used() && lvmetad_is_disabled(cmd, &reason)) {
+ log_warn("WARNING: Not using lvmetad because %s.", reason);
+ log_warn("WARNING: Rescan all devices to update lvmetad cache (pvscan --cache).");
+ log_error("Failed to update cache.");
+ ret = ECMD_FAILED;
+ goto out;
+ }
+
+ /*
* FIXME: when specific devs are named, we generally don't
* want to scan any other devs, but if lvmetad is not yet
* populated, the first 'pvscan --cache dev' does need to