diff options
author | David Teigland <teigland@redhat.com> | 2014-09-04 16:30:02 -0500 |
---|---|---|
committer | David Teigland <teigland@redhat.com> | 2014-09-22 10:32:24 -0500 |
commit | f1dd6983fb9c00514359b644fd3b297e3922a814 (patch) | |
tree | 815a7f4f3662490401f896d4096451a273022dfd | |
parent | 6be399b5ebb0f9a0e0d345747d1c164cc3911e2e (diff) | |
download | lvm2-dev-dct-process-latest.tar.gz |
reporter: global lock needed before process_each_pvdev-dct-process-v23dev-dct-process-latest
The block of code that acquires the global lock for
process_each_pv() was in the wrong location given
the way report_type is munged, and does not equal
PVS until later in the function.
-rw-r--r-- | tools/reporter.c | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/tools/reporter.c b/tools/reporter.c index 32a0b0532..919a9aef4 100644 --- a/tools/reporter.c +++ b/tools/reporter.c @@ -283,19 +283,6 @@ static int _report(struct cmd_context *cmd, int argc, char **argv, if (args_are_pvs && argc) cmd->filter->wipe(cmd->filter); - /* - * This moved here as part of factoring it out of process_each_pv. - * We lock VG_GLOBAL to enable use of metadata cache. - * This can pause alongide pvscan or vgscan process for a while. - */ - if ((report_type == PVS || report_type == PVSEGS) && !lvmetad_active()) { - lock_global = 1; - if (!lock_vol(cmd, VG_GLOBAL, LCK_VG_READ, NULL)) { - log_error("Unable to obtain global lock."); - return ECMD_FAILED; - } - } - switch (report_type) { case DEVTYPES: keys = find_config_tree_str(cmd, report_devtypes_sort_CFG, NULL); @@ -423,6 +410,19 @@ static int _report(struct cmd_context *cmd, int argc, char **argv, else if (report_type & LVS) report_type = LVS; + /* + * This moved here as part of factoring it out of process_each_pv. + * We lock VG_GLOBAL to enable use of metadata cache. + * This can pause alongide pvscan or vgscan process for a while. + */ + if ((report_type == PVS || report_type == PVSEGS) && !lvmetad_active()) { + lock_global = 1; + if (!lock_vol(cmd, VG_GLOBAL, LCK_VG_READ, NULL)) { + log_error("Unable to obtain global lock."); + return ECMD_FAILED; + } + } + switch (report_type) { case DEVTYPES: r = _process_each_devtype(cmd, argc, report_handle); |