Projects
openEuler:22.03:LTS:LoongArch
systemd
_service:tar_scm_kernel_repo:backport-udev-only...
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _service:tar_scm_kernel_repo:backport-udev-only-ignore-ENOENT-or-friends-which-suggest-the-block.patch of Package systemd
From ef400c3878ad23aa02bd5bb47f089bdef49e9d8c Mon Sep 17 00:00:00 2001 From: Yu Watanabe <watanabe.yu+github@gmail.com> Date: Sat, 12 Mar 2022 20:40:58 +0900 Subject: [PATCH] udev: only ignore ENOENT or friends which suggest the block device is not exist The ENOENT, ENXIO, and ENODEV error can happen easily when a block device appears and soon removed. So, it is reasonable to ignore the error. But other errors should not occur here, and hence let's handle them as critical. Reference:https://github.com/systemd/systemd/commit/ef400c3878ad23aa02bd5bb47f089bdef49e9d8c Conflict:NA --- src/udev/udevd.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/udev/udevd.c b/src/udev/udevd.c index 8389c39f652f..f1f864a4610c 100644 --- a/src/udev/udevd.c +++ b/src/udev/udevd.c @@ -399,8 +399,10 @@ static int worker_lock_block_device(sd_device *dev, int *ret_fd) { fd = open(val, O_RDONLY|O_CLOEXEC|O_NOFOLLOW|O_NONBLOCK); if (fd < 0) { - log_device_debug_errno(dev, errno, "Failed to open '%s', ignoring: %m", val); - return 0; + bool ignore = ERRNO_IS_DEVICE_ABSENT(errno); + + log_device_debug_errno(dev, errno, "Failed to open '%s'%s: %m", val, ignore ? ", ignoring" : ""); + return ignore ? 0 : -errno; } if (flock(fd, LOCK_SH|LOCK_NB) < 0)
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.