[lvm-devel] main - label: avoid rescaning unusable DM devices
Zdenek Kabelac
zkabelac at sourceware.org
Wed Feb 10 14:43:57 UTC 2021
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=a3835861774f4758e0de2a4b462eb51b91a3f09b
Commit: a3835861774f4758e0de2a4b462eb51b91a3f09b
Parent: f90082ce8f218781ff3b9361e748dbff0ff0e2e3
Author: Zdenek Kabelac <zkabelac at redhat.com>
AuthorDate: Wed Feb 10 00:43:40 2021 +0100
Committer: Zdenek Kabelac <zkabelac at redhat.com>
CommitterDate: Wed Feb 10 15:39:03 2021 +0100
label: avoid rescaning unusable DM devices
---
lib/label/label.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/lib/label/label.c b/lib/label/label.c
index 1e777d7c2..030d2c578 100644
--- a/lib/label/label.c
+++ b/lib/label/label.c
@@ -707,6 +707,19 @@ static int _scan_list(struct cmd_context *cmd, struct dev_filter *f,
if (!rem_prefetches)
break;
+ /* FIXME: figure better solution to avoid opening DM we shouldn't open */
+ if (dm_is_dm_major(MAJOR(devl->dev->dev)) &&
+ !device_is_usable(devl->dev, (struct dev_usable_check_params) {
+ .check_blocked = 1,
+ .check_suspended = ignore_suspended_devices(),
+ .check_reserved = 1,
+ .check_error_target = 1,
+ })) {
+ log_debug_devs("Scan skips unusuable DM device %s.", dev_name(devl->dev));
+ dm_list_del(&devl->list);
+ continue;
+ }
+
if (!_in_bcache(devl->dev)) {
if (!_scan_dev_open(devl->dev)) {
log_debug_devs("Scan failed to open %s.", dev_name(devl->dev));
More information about the lvm-devel
mailing list