summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Teigland <teigland@redhat.com>2021-10-14 14:02:59 -0500
committerDavid Teigland <teigland@redhat.com>2021-10-14 14:02:59 -0500
commitc38473548e546c8e94d41587714f350a11362c84 (patch)
tree2e784a97f6e069d57a335b7d466bca75a0238694
parente88163ceac0ca7d78ab728867a6e84d0e535ad1d (diff)
downloadlvm2-c38473548e546c8e94d41587714f350a11362c84.tar.gz
fix segfault handling duplicate PVs
cmd arg was missing when switching to use an alternative duplicate dev.
-rw-r--r--lib/cache/lvmcache.c2
-rw-r--r--lib/label/label.c4
-rw-r--r--lib/label/label.h2
-rw-r--r--tools/toollib.c2
4 files changed, 5 insertions, 5 deletions
diff --git a/lib/cache/lvmcache.c b/lib/cache/lvmcache.c
index 2c4254324..bee63ebb4 100644
--- a/lib/cache/lvmcache.c
+++ b/lib/cache/lvmcache.c
@@ -1349,7 +1349,7 @@ int lvmcache_label_scan(struct cmd_context *cmd)
dm_list_iterate_items(devl, &add_cache_devs) {
log_debug_cache("Adding chosen duplicate %s", dev_name(devl->dev));
- label_scan_dev(devl->dev);
+ label_scan_dev(cmd, devl->dev);
}
dm_list_splice(&_unused_duplicates, &del_cache_devs);
diff --git a/lib/label/label.c b/lib/label/label.c
index b8f0dc84d..3cd912270 100644
--- a/lib/label/label.c
+++ b/lib/label/label.c
@@ -1488,7 +1488,7 @@ void label_scan_destroy(struct cmd_context *cmd)
* device, this is not a commonly used function.
*/
-int label_scan_dev(struct device *dev)
+int label_scan_dev(struct cmd_context *cmd, struct device *dev)
{
struct dm_list one_dev;
struct device_list *devl;
@@ -1503,7 +1503,7 @@ int label_scan_dev(struct device *dev)
label_scan_invalidate(dev);
- _scan_list(NULL, NULL, &one_dev, 0, &failed);
+ _scan_list(cmd, NULL, &one_dev, 0, &failed);
free(devl);
diff --git a/lib/label/label.h b/lib/label/label.h
index 32ceebc34..8b510eb79 100644
--- a/lib/label/label.h
+++ b/lib/label/label.h
@@ -107,7 +107,7 @@ int label_scan_devs(struct cmd_context *cmd, struct dev_filter *f, struct dm_lis
int label_scan_devs_cached(struct cmd_context *cmd, struct dev_filter *f, struct dm_list *devs);
int label_scan_devs_rw(struct cmd_context *cmd, struct dev_filter *f, struct dm_list *devs);
int label_scan_devs_excl(struct cmd_context *cmd, struct dev_filter *f, struct dm_list *devs);
-int label_scan_dev(struct device *dev);
+int label_scan_dev(struct cmd_context *cmd, struct device *dev);
void label_scan_invalidate(struct device *dev);
void label_scan_invalidate_lv(struct cmd_context *cmd, struct logical_volume *lv);
void label_scan_drop(struct cmd_context *cmd);
diff --git a/tools/toollib.c b/tools/toollib.c
index c05a973d5..5b67669e1 100644
--- a/tools/toollib.c
+++ b/tools/toollib.c
@@ -1481,7 +1481,7 @@ int process_each_label(struct cmd_context *cmd, int argc, char **argv,
/*
* add info to lvmcache from the duplicate dev.
*/
- label_scan_dev(devl->dev);
+ label_scan_dev(cmd, devl->dev);
/*
* the info/label should now be found because