diff options
author | Zdenek Kabelac <zkabelac@redhat.com> | 2021-02-10 00:43:40 +0100 |
---|---|---|
committer | Zdenek Kabelac <zkabelac@redhat.com> | 2021-02-10 15:39:03 +0100 |
commit | a3835861774f4758e0de2a4b462eb51b91a3f09b (patch) | |
tree | c5d8dcaadeec04fa02abf69386d74d7acbe039da | |
parent | f90082ce8f218781ff3b9361e748dbff0ff0e2e3 (diff) | |
download | lvm2-a3835861774f4758e0de2a4b462eb51b91a3f09b.tar.gz |
label: avoid rescaning unusable DM devices
-rw-r--r-- | lib/label/label.c | 13 |
1 files changed, 13 insertions, 0 deletions
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)); |