diff options
author | David Teigland <teigland@redhat.com> | 2015-12-11 14:02:36 -0600 |
---|---|---|
committer | David Teigland <teigland@redhat.com> | 2015-12-11 14:20:00 -0600 |
commit | 90cf5acff15a26d87d4cabf6601e82846d608a69 (patch) | |
tree | 43116806c72f680d73484de614de1265ace5c71d /tools/toollib.c | |
parent | 3e48354f2d458e80cab4c096b2869bdc1ad463c3 (diff) | |
download | lvm2-dev-dct-dev-cache-full-scan.tar.gz |
process_each_pv: do full scan earlier to find new devicesdev-dct-dev-cache-full-scan
Before commit c1f246fedfc349c25749da501e68a7f70bd122b0,
_get_all_devices() did a full device scan before
get_vgnameids() was called. New devices would be
added to the dev-cache before label scanning done
by get_vgnameids. So, labels would be read from
new devices by the first 'pvs' command.
After that commit, _get_all_devices() was called
after get_vgnameids() was finished with label scanning.
So, new devices would be missed by the label scanning,
and would not appear to be lvm devices to the first
'pvs' command. A new device would be added to .cache
by the first command, so the second 'pvs' command would
scan labels from it in get_vgnameids().
Now, the full device scan is factored out of
get_all_devices() and called by itself at the
start of the command so that new devices will
be known before get_vgnameids() scans labels.
Diffstat (limited to 'tools/toollib.c')
-rw-r--r-- | tools/toollib.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/tools/toollib.c b/tools/toollib.c index e03aaf77f..fb6edadde 100644 --- a/tools/toollib.c +++ b/tools/toollib.c @@ -3340,6 +3340,13 @@ int process_each_pv(struct cmd_context *cmd, return_ECMD_FAILED; /* + * This full scan would be done by _get_all_devices() if + * it were not done here first. It's called here first + * so that get_vgnameids() will look at any new devices. + */ + dev_cache_full_scan(cmd->full_filter); + + /* * Need pvid's set on all PVs before processing so that pvid's * can be compared to find duplicates while processing. */ |