diff options
author | David Teigland <teigland@redhat.com> | 2016-04-27 15:06:43 -0500 |
---|---|---|
committer | David Teigland <teigland@redhat.com> | 2016-05-02 16:10:11 -0500 |
commit | ed21b11576a4fd09e2afaae4aa5d21cd35d5aaae (patch) | |
tree | c58fba8626030aad509d2c723501754ba36e0ac1 | |
parent | 795e47cec572b13329eecbcfbbc0aa70f0bccc16 (diff) | |
download | lvm2-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.c | 13 |
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 |