From dd5d9aa6bcc378d330a583c49e2bc71f5a7a7439 Mon Sep 17 00:00:00 2001 From: Petr Rockai Date: Mon, 9 Aug 2010 14:05:16 +0000 Subject: [PATCH] Never scan internal LVM devices. --- lib/activate/dev_manager.c | 11 ++++++++--- lib/filters/filter-persistent.c | 4 ++-- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/lib/activate/dev_manager.c b/lib/activate/dev_manager.c index 9b2761603..e30a62e91 100644 --- a/lib/activate/dev_manager.c +++ b/lib/activate/dev_manager.c @@ -153,12 +153,17 @@ int device_is_usable(struct device *dev) if (!dm_task_get_info(dmt, &info)) goto_out; - if (!info.exists || info.suspended) + if (!info.exists) goto out; name = dm_task_get_name(dmt); uuid = dm_task_get_uuid(dmt); + if (info.suspended && ignore_suspended_devices()) { + log_debug("%s: Suspended device %s not usable.", dev_name(dev), name); + goto out; + } + /* FIXME Also check for mirror block_on_error and mpath no paths */ /* For now, we exclude all mirrors */ @@ -166,8 +171,8 @@ int device_is_usable(struct device *dev) next = dm_get_next_target(dmt, next, &start, &length, &target_type, ¶ms); /* Skip if target type doesn't match */ - if (target_type && !strcmp(target_type, "mirror")) { - log_debug("%s: Mirror device not usable.", dev_name(dev)); + if (target_type && !strcmp(target_type, "mirror") && ignore_suspended_devices()) { + log_debug("%s: Mirror device %s not usable.", dev_name(dev), name); goto out; } } while (next); diff --git a/lib/filters/filter-persistent.c b/lib/filters/filter-persistent.c index 5a016f84d..5e05d2ba3 100644 --- a/lib/filters/filter-persistent.c +++ b/lib/filters/filter-persistent.c @@ -279,8 +279,8 @@ static int _lookup_p(struct dev_filter *f, struct device *dev) if (!l) dm_list_iterate_items(sl, &dev->aliases) dm_hash_insert(pf->devices, sl->str, PF_GOOD_DEVICE); - if (ignore_suspended_devices() && !device_is_usable(dev)) { - log_debug("%s: Skipping (suspended/internal)", dev_name(dev)); + if (!device_is_usable(dev)) { + log_debug("%s: Skipping unusable device", dev_name(dev)); return 0; } return pf->real->passes_filter(pf->real, dev); -- 2.43.5