diff options
author | David Teigland <teigland@redhat.com> | 2021-10-14 14:02:59 -0500 |
---|---|---|
committer | David Teigland <teigland@redhat.com> | 2021-10-14 14:02:59 -0500 |
commit | c38473548e546c8e94d41587714f350a11362c84 (patch) | |
tree | 2e784a97f6e069d57a335b7d466bca75a0238694 | |
parent | e88163ceac0ca7d78ab728867a6e84d0e535ad1d (diff) | |
download | lvm2-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.c | 2 | ||||
-rw-r--r-- | lib/label/label.c | 4 | ||||
-rw-r--r-- | lib/label/label.h | 2 | ||||
-rw-r--r-- | tools/toollib.c | 2 |
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 |