From: Yu Watanabe Date: Sun, 18 Sep 2022 04:24:12 +0000 (+0900) Subject: udev: use block_device_get_whole_disk() X-Git-Tag: v252-rc1~148^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8f71534e06d40312371fa80d932783e1f937bc59;p=thirdparty%2Fsystemd.git udev: use block_device_get_whole_disk() This should not change anything effectively. --- diff --git a/src/udev/udevd.c b/src/udev/udevd.c index 20a9a8cdbed..9900a9363ea 100644 --- a/src/udev/udevd.c +++ b/src/udev/udevd.c @@ -473,13 +473,6 @@ static int device_get_whole_disk(sd_device *dev, sd_device **ret_device, const c if (device_for_action(dev, SD_DEVICE_REMOVE)) goto irrelevant; - r = sd_device_get_subsystem(dev, &val); - if (r < 0) - return log_device_debug_errno(dev, r, "Failed to get subsystem: %m"); - - if (!streq(val, "block")) - goto irrelevant; - r = sd_device_get_sysname(dev, &val); if (r < 0) return log_device_debug_errno(dev, r, "Failed to get sysname: %m"); @@ -493,16 +486,13 @@ static int device_get_whole_disk(sd_device *dev, sd_device **ret_device, const c if (STARTSWITH_SET(val, "dm-", "md", "drbd")) goto irrelevant; - r = sd_device_get_devtype(dev, &val); - if (r < 0 && r != -ENOENT) - return log_device_debug_errno(dev, r, "Failed to get devtype: %m"); - if (r >= 0 && streq(val, "partition")) { - r = sd_device_get_parent(dev, &dev); - if (r == -ENOENT) /* The device may be already removed. */ - goto irrelevant; - if (r < 0) - return log_device_debug_errno(dev, r, "Failed to get parent device: %m"); - } + r = block_device_get_whole_disk(dev, &dev); + if (IN_SET(r, + -ENOTBLK, /* The device is not a block device. */ + -ENODEV /* The whole disk device was not found, it may already be removed. */)) + goto irrelevant; + if (r < 0) + return log_device_debug_errno(dev, r, "Failed to get whole disk device: %m"); r = sd_device_get_devname(dev, &val); if (r == -ENOENT)