diff --git a/1039-udevadm-settle-fixed-return-code-for-empty-queue.patch b/1039-udevadm-settle-fixed-return-code-for-empty-queue.patch new file mode 100644 index 00000000..2760970f --- /dev/null +++ b/1039-udevadm-settle-fixed-return-code-for-empty-queue.patch @@ -0,0 +1,34 @@ +From 83be2c398589a3d64db5999cfd5527c5219bff46 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Tue, 20 May 2014 12:25:16 +0200 +Subject: [PATCH] udevadm-settle: fixed return code for empty queue + +If the udev queue is empty and "/run/udev/queue" does not exist, +"udevadm settle" would return with EXIT_FAILURE, because the inotify on +"/run/udev/queue" would fail with ENOENT. + +This patch lets "udevadm settle" exit with EXIT_SUCCESS in this case. +--- + src/udev/udevadm-settle.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git src/udev/udevadm-settle.c src/udev/udevadm-settle.c +index 65fc35f..66fd843 100644 +--- src/udev/udevadm-settle.c ++++ src/udev/udevadm-settle.c +@@ -116,7 +116,11 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) + } + + if (inotify_add_watch(pfd[0].fd, "/run/udev/queue" , IN_DELETE) < 0) { +- log_debug("watching /run/udev failed"); ++ /* If it does not exist, we don't have to wait */ ++ if (errno == ENOENT) ++ rc = EXIT_SUCCESS; ++ else ++ log_debug("watching /run/udev/queue failed"); + goto out; + } + +-- +1.7.9.2 + diff --git a/systemd-mini.changes b/systemd-mini.changes index 3fac462e..0e3eb4a4 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Wed Jun 25 17:06:07 UTC 2014 - werner@suse.de + +- Add upstream patch + 1039-udevadm-settle-fixed-return-code-for-empty-queue.patch it + fixes udevadm settle exit code which may had roken dracut scripts + (bnc#884271 comment#18) + ------------------------------------------------------------------- Wed Jun 25 14:12:52 UTC 2014 - werner@suse.de diff --git a/systemd-mini.spec b/systemd-mini.spec index 8a79d06c..a3e49883 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -670,6 +670,8 @@ Patch1036: 1036-rules-disable-usage-of-dev_id-in-persistent-rules.patch Patch1037: 1037-udev-exclude-cd-dvd-from-block-device.patch # PATCH-FIX-UPSTREAM 1038-udev-fix-invalid-free-in-enable_name_policy.patch Patch1038: 1038-udev-fix-invalid-free-in-enable_name_policy.patch +# PATCH-FIX-UPSTREAM 1039-udevadm-settle-fixed-return-code-for-empty-queue.patch +Patch1039: 1039-udevadm-settle-fixed-return-code-for-empty-queue.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -1163,6 +1165,7 @@ cp %{SOURCE7} m4/ %patch1036 -p1 %patch1037 -p1 %patch1038 -p0 +%patch1039 -p0 # ensure generate files are removed rm -f units/emergency.service diff --git a/systemd.changes b/systemd.changes index 3fac462e..0e3eb4a4 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Wed Jun 25 17:06:07 UTC 2014 - werner@suse.de + +- Add upstream patch + 1039-udevadm-settle-fixed-return-code-for-empty-queue.patch it + fixes udevadm settle exit code which may had roken dracut scripts + (bnc#884271 comment#18) + ------------------------------------------------------------------- Wed Jun 25 14:12:52 UTC 2014 - werner@suse.de diff --git a/systemd.spec b/systemd.spec index 69dc275b..e10ce7c0 100644 --- a/systemd.spec +++ b/systemd.spec @@ -665,6 +665,8 @@ Patch1036: 1036-rules-disable-usage-of-dev_id-in-persistent-rules.patch Patch1037: 1037-udev-exclude-cd-dvd-from-block-device.patch # PATCH-FIX-UPSTREAM 1038-udev-fix-invalid-free-in-enable_name_policy.patch Patch1038: 1038-udev-fix-invalid-free-in-enable_name_policy.patch +# PATCH-FIX-UPSTREAM 1039-udevadm-settle-fixed-return-code-for-empty-queue.patch +Patch1039: 1039-udevadm-settle-fixed-return-code-for-empty-queue.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -1158,6 +1160,7 @@ cp %{SOURCE7} m4/ %patch1036 -p1 %patch1037 -p1 %patch1038 -p0 +%patch1039 -p0 # ensure generate files are removed rm -f units/emergency.service