35 lines
1.2 KiB
Diff
35 lines
1.2 KiB
Diff
|
|
From bc10f60bdc1076b8b3405e9ce18a088cd770b268 Mon Sep 17 00:00:00 2001
|
||
|
|
From: root <root@localhost.localdomain>
|
||
|
|
Date: Wed, 13 Mar 2019 14:39:13 +0800
|
||
|
|
Subject: [PATCH 11/17] apply obtain_device_list_from_udev to all libudev usage
|
||
|
|
|
||
|
|
udev_dev_is_md_component and udev_dev_is_mpath_component
|
||
|
|
are not used for obtaining the device list, but they still
|
||
|
|
use libudev for device info. When there are problems with
|
||
|
|
udev, these functions can get stuck. So, use the existing
|
||
|
|
obtain_device_list_from_udev config setting to also control
|
||
|
|
whether these "is component" functions are used, which gives
|
||
|
|
us a way to avoid using libudev entirely when it's causing
|
||
|
|
problems.
|
||
|
|
---
|
||
|
|
lib/device/dev-type.c | 3 +++
|
||
|
|
1 file changed, 3 insertions(+)
|
||
|
|
|
||
|
|
diff --git a/lib/device/dev-type.c b/lib/device/dev-type.c
|
||
|
|
index af4b407..e1671fa 100644
|
||
|
|
--- a/lib/device/dev-type.c
|
||
|
|
+++ b/lib/device/dev-type.c
|
||
|
|
@@ -1016,6 +1016,9 @@ int udev_dev_is_mpath_component(struct device *dev)
|
||
|
|
unsigned i = 0;
|
||
|
|
int ret = 0;
|
||
|
|
|
||
|
|
+ if (!obtain_device_list_from_udev())
|
||
|
|
+ return 0;
|
||
|
|
+
|
||
|
|
if (!udev_context) {
|
||
|
|
log_warn("WARNING: No udev context available to check if device %s is multipath component.", dev_name(dev));
|
||
|
|
return 0;
|
||
|
|
--
|
||
|
|
2.19.1
|
||
|
|
|