forked from pool/systemd
.
OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=731
This commit is contained in:
parent
9ca9cee421
commit
fd58d4a8d3
@ -0,0 +1,53 @@
|
|||||||
|
From 2e5b17d01347d3c3118be2b8ad63d20415dbb1f0 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Kay Sievers <kay@vrfy.org>
|
||||||
|
Date: Thu, 24 Jul 2014 23:37:35 +0200
|
||||||
|
Subject: [PATCH] udev: exclude MD from block device ownership event locking
|
||||||
|
|
||||||
|
MD instantiates devices at open(). This is incomptible with the
|
||||||
|
locking logic, as the "change" event emitted when stopping a
|
||||||
|
device will bring it back.
|
||||||
|
---
|
||||||
|
src/udev/udevd.c | 23 +++++++----------------
|
||||||
|
1 file changed, 7 insertions(+), 16 deletions(-)
|
||||||
|
|
||||||
|
diff --git src/udev/udevd.c src/udev/udevd.c
|
||||||
|
index a45d324..db935d6 100644
|
||||||
|
--- src/udev/udevd.c
|
||||||
|
+++ src/udev/udevd.c
|
||||||
|
@@ -285,26 +285,17 @@ static void worker_new(struct event *event)
|
||||||
|
udev_event->exec_delay = exec_delay;
|
||||||
|
|
||||||
|
/*
|
||||||
|
- * Take a "read lock" on the device node; this establishes
|
||||||
|
+ * Take a shared lock on the device node; this establishes
|
||||||
|
* a concept of device "ownership" to serialize device
|
||||||
|
- * access. External processes holding a "write lock" will
|
||||||
|
+ * access. External processes holding an exclusive lock will
|
||||||
|
* cause udev to skip the event handling; in the case udev
|
||||||
|
- * acquired the lock, the external process will block until
|
||||||
|
+ * acquired the lock, the external process can block until
|
||||||
|
* udev has finished its event handling.
|
||||||
|
*/
|
||||||
|
-
|
||||||
|
- /*
|
||||||
|
- * <kabi_> since we make check - device seems unused - we try
|
||||||
|
- * ioctl to deactivate - and device is found to be opened
|
||||||
|
- * <kay> sure, you try to take a write lock
|
||||||
|
- * <kay> if you get it udev is out
|
||||||
|
- * <kay> if you can't get it, udev is busy
|
||||||
|
- * <kabi_> we cannot deactivate openned device (as it is in-use)
|
||||||
|
- * <kay> maybe we should just exclude dm from that thing entirely
|
||||||
|
- * <kabi_> IMHO this sounds like a good plan for this moment
|
||||||
|
- */
|
||||||
|
- if (streq_ptr("block", udev_device_get_subsystem(dev)) &&
|
||||||
|
- !startswith(udev_device_get_sysname(dev), "dm-")) {
|
||||||
|
+ if (!streq_ptr(udev_device_get_action(dev), "remove") &&
|
||||||
|
+ streq_ptr("block", udev_device_get_subsystem(dev)) &&
|
||||||
|
+ !startswith(udev_device_get_sysname(dev), "dm-") &&
|
||||||
|
+ !startswith(udev_device_get_sysname(dev), "md")) {
|
||||||
|
struct udev_device *d = dev;
|
||||||
|
|
||||||
|
if (streq_ptr("partition", udev_device_get_devtype(d)))
|
||||||
|
--
|
||||||
|
1.7.9.2
|
||||||
|
|
@ -1,3 +1,13 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Jul 25 09:37:56 UTC 2014 - werner@suse.de
|
||||||
|
|
||||||
|
- Add upstream patch
|
||||||
|
1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch
|
||||||
|
- Add with condition blkrrpart to be able to disable the patches
|
||||||
|
1025, 1027, 1029, 1030, 1031, 1032, 1033, 1034, 1037, and 1054
|
||||||
|
which uses the BLKRRPART ioctl for e.g. synthesize change events
|
||||||
|
which may interfere with other tools like parted.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Thu Jul 24 13:05:42 UTC 2014 - fcrozat@suse.com
|
Thu Jul 24 13:05:42 UTC 2014 - fcrozat@suse.com
|
||||||
|
|
||||||
|
@ -33,6 +33,7 @@
|
|||||||
%endif
|
%endif
|
||||||
%bcond_with udevsettle
|
%bcond_with udevsettle
|
||||||
%bcond_with permission
|
%bcond_with permission
|
||||||
|
%bcond_without blkrrpart
|
||||||
|
|
||||||
Name: systemd-mini
|
Name: systemd-mini
|
||||||
Url: http://www.freedesktop.org/wiki/Software/systemd
|
Url: http://www.freedesktop.org/wiki/Software/systemd
|
||||||
@ -835,6 +836,8 @@ Patch1051: 1051-check-if-NAME-has-a-value.patch
|
|||||||
Patch1052: 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch
|
Patch1052: 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch
|
||||||
# PATCH-FIX-SUSE 1053-better-checks-in-write_net_rules.patch (bnc#888178)
|
# PATCH-FIX-SUSE 1053-better-checks-in-write_net_rules.patch (bnc#888178)
|
||||||
Patch1053: 1053-better-checks-in-write_net_rules.patch
|
Patch1053: 1053-better-checks-in-write_net_rules.patch
|
||||||
|
# PATCH-FIX-SUSE 0001-udev-exclude-MD-from-block-device-ownership-event-lo.patch
|
||||||
|
Patch1054: 1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch
|
||||||
|
|
||||||
%description
|
%description
|
||||||
Systemd is a system and service manager, compatible with SysV and LSB
|
Systemd is a system and service manager, compatible with SysV and LSB
|
||||||
@ -1374,19 +1377,27 @@ cp %{SOURCE7} m4/
|
|||||||
%endif
|
%endif
|
||||||
%patch1023 -p0
|
%patch1023 -p0
|
||||||
%patch1024 -p0
|
%patch1024 -p0
|
||||||
|
%if %{with blkrrpart}
|
||||||
%patch1025 -p1
|
%patch1025 -p1
|
||||||
|
%endif
|
||||||
%patch1026 -p1
|
%patch1026 -p1
|
||||||
|
%if %{with blkrrpart}
|
||||||
%patch1027 -p1
|
%patch1027 -p1
|
||||||
|
%endif
|
||||||
%patch1028 -p1
|
%patch1028 -p1
|
||||||
|
%if %{with blkrrpart}
|
||||||
%patch1029 -p1
|
%patch1029 -p1
|
||||||
%patch1030 -p1
|
%patch1030 -p1
|
||||||
%patch1031 -p1
|
%patch1031 -p1
|
||||||
%patch1032 -p1
|
%patch1032 -p1
|
||||||
%patch1033 -p1
|
%patch1033 -p1
|
||||||
%patch1034 -p1
|
%patch1034 -p1
|
||||||
|
%endif
|
||||||
%patch1035 -p1
|
%patch1035 -p1
|
||||||
%patch1036 -p1
|
%patch1036 -p1
|
||||||
|
%if %{with blkrrpart}
|
||||||
%patch1037 -p1
|
%patch1037 -p1
|
||||||
|
%endif
|
||||||
%patch1038 -p0
|
%patch1038 -p0
|
||||||
%if %{with udevsettle}
|
%if %{with udevsettle}
|
||||||
%patch1039 -p0
|
%patch1039 -p0
|
||||||
@ -1407,6 +1418,9 @@ cp %{SOURCE7} m4/
|
|||||||
%patch1051 -p1
|
%patch1051 -p1
|
||||||
%patch1052 -p0
|
%patch1052 -p0
|
||||||
%patch1053 -p1
|
%patch1053 -p1
|
||||||
|
%if %{with blkrrpart}
|
||||||
|
%patch1054 -p0
|
||||||
|
%endif
|
||||||
|
|
||||||
# ensure generate files are removed
|
# ensure generate files are removed
|
||||||
rm -f units/emergency.service
|
rm -f units/emergency.service
|
||||||
|
@ -1,3 +1,13 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Jul 25 09:37:56 UTC 2014 - werner@suse.de
|
||||||
|
|
||||||
|
- Add upstream patch
|
||||||
|
1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch
|
||||||
|
- Add with condition blkrrpart to be able to disable the patches
|
||||||
|
1025, 1027, 1029, 1030, 1031, 1032, 1033, 1034, 1037, and 1054
|
||||||
|
which uses the BLKRRPART ioctl for e.g. synthesize change events
|
||||||
|
which may interfere with other tools like parted.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Thu Jul 24 13:05:42 UTC 2014 - fcrozat@suse.com
|
Thu Jul 24 13:05:42 UTC 2014 - fcrozat@suse.com
|
||||||
|
|
||||||
|
14
systemd.spec
14
systemd.spec
@ -31,6 +31,7 @@
|
|||||||
%endif
|
%endif
|
||||||
%bcond_with udevsettle
|
%bcond_with udevsettle
|
||||||
%bcond_with permission
|
%bcond_with permission
|
||||||
|
%bcond_without blkrrpart
|
||||||
|
|
||||||
Name: systemd
|
Name: systemd
|
||||||
Url: http://www.freedesktop.org/wiki/Software/systemd
|
Url: http://www.freedesktop.org/wiki/Software/systemd
|
||||||
@ -830,6 +831,8 @@ Patch1051: 1051-check-if-NAME-has-a-value.patch
|
|||||||
Patch1052: 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch
|
Patch1052: 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch
|
||||||
# PATCH-FIX-SUSE 1053-better-checks-in-write_net_rules.patch (bnc#888178)
|
# PATCH-FIX-SUSE 1053-better-checks-in-write_net_rules.patch (bnc#888178)
|
||||||
Patch1053: 1053-better-checks-in-write_net_rules.patch
|
Patch1053: 1053-better-checks-in-write_net_rules.patch
|
||||||
|
# PATCH-FIX-SUSE 0001-udev-exclude-MD-from-block-device-ownership-event-lo.patch
|
||||||
|
Patch1054: 1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch
|
||||||
|
|
||||||
%description
|
%description
|
||||||
Systemd is a system and service manager, compatible with SysV and LSB
|
Systemd is a system and service manager, compatible with SysV and LSB
|
||||||
@ -1369,19 +1372,27 @@ cp %{SOURCE7} m4/
|
|||||||
%endif
|
%endif
|
||||||
%patch1023 -p0
|
%patch1023 -p0
|
||||||
%patch1024 -p0
|
%patch1024 -p0
|
||||||
|
%if %{with blkrrpart}
|
||||||
%patch1025 -p1
|
%patch1025 -p1
|
||||||
|
%endif
|
||||||
%patch1026 -p1
|
%patch1026 -p1
|
||||||
|
%if %{with blkrrpart}
|
||||||
%patch1027 -p1
|
%patch1027 -p1
|
||||||
|
%endif
|
||||||
%patch1028 -p1
|
%patch1028 -p1
|
||||||
|
%if %{with blkrrpart}
|
||||||
%patch1029 -p1
|
%patch1029 -p1
|
||||||
%patch1030 -p1
|
%patch1030 -p1
|
||||||
%patch1031 -p1
|
%patch1031 -p1
|
||||||
%patch1032 -p1
|
%patch1032 -p1
|
||||||
%patch1033 -p1
|
%patch1033 -p1
|
||||||
%patch1034 -p1
|
%patch1034 -p1
|
||||||
|
%endif
|
||||||
%patch1035 -p1
|
%patch1035 -p1
|
||||||
%patch1036 -p1
|
%patch1036 -p1
|
||||||
|
%if %{with blkrrpart}
|
||||||
%patch1037 -p1
|
%patch1037 -p1
|
||||||
|
%endif
|
||||||
%patch1038 -p0
|
%patch1038 -p0
|
||||||
%if %{with udevsettle}
|
%if %{with udevsettle}
|
||||||
%patch1039 -p0
|
%patch1039 -p0
|
||||||
@ -1402,6 +1413,9 @@ cp %{SOURCE7} m4/
|
|||||||
%patch1051 -p1
|
%patch1051 -p1
|
||||||
%patch1052 -p0
|
%patch1052 -p0
|
||||||
%patch1053 -p1
|
%patch1053 -p1
|
||||||
|
%if %{with blkrrpart}
|
||||||
|
%patch1054 -p0
|
||||||
|
%endif
|
||||||
|
|
||||||
# ensure generate files are removed
|
# ensure generate files are removed
|
||||||
rm -f units/emergency.service
|
rm -f units/emergency.service
|
||||||
|
Loading…
Reference in New Issue
Block a user