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
ebe5bb6085
commit
a15cc00274
@ -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
|
||||
|
||||
|
@ -33,6 +33,7 @@
|
||||
%endif
|
||||
%bcond_with udevsettle
|
||||
%bcond_with permission
|
||||
%bcond_without blkrrpart
|
||||
|
||||
Name: systemd-mini
|
||||
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
|
||||
# PATCH-FIX-SUSE 1053-better-checks-in-write_net_rules.patch (bnc#888178)
|
||||
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
|
||||
Systemd is a system and service manager, compatible with SysV and LSB
|
||||
@ -1374,19 +1377,27 @@ cp %{SOURCE7} m4/
|
||||
%endif
|
||||
%patch1023 -p0
|
||||
%patch1024 -p0
|
||||
%if %{with blkrrpart}
|
||||
%patch1025 -p1
|
||||
%endif
|
||||
%patch1026 -p1
|
||||
%if %{with blkrrpart}
|
||||
%patch1027 -p1
|
||||
%endif
|
||||
%patch1028 -p1
|
||||
%if %{with blkrrpart}
|
||||
%patch1029 -p1
|
||||
%patch1030 -p1
|
||||
%patch1031 -p1
|
||||
%patch1032 -p1
|
||||
%patch1033 -p1
|
||||
%patch1034 -p1
|
||||
%endif
|
||||
%patch1035 -p1
|
||||
%patch1036 -p1
|
||||
%if %{with blkrrpart}
|
||||
%patch1037 -p1
|
||||
%endif
|
||||
%patch1038 -p0
|
||||
%if %{with udevsettle}
|
||||
%patch1039 -p0
|
||||
@ -1407,6 +1418,9 @@ cp %{SOURCE7} m4/
|
||||
%patch1051 -p1
|
||||
%patch1052 -p0
|
||||
%patch1053 -p1
|
||||
%if %{with blkrrpart}
|
||||
%patch1054 -p0
|
||||
%endif
|
||||
|
||||
# ensure generate files are removed
|
||||
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
|
||||
|
||||
|
14
systemd.spec
14
systemd.spec
@ -31,6 +31,7 @@
|
||||
%endif
|
||||
%bcond_with udevsettle
|
||||
%bcond_with permission
|
||||
%bcond_without blkrrpart
|
||||
|
||||
Name: 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
|
||||
# PATCH-FIX-SUSE 1053-better-checks-in-write_net_rules.patch (bnc#888178)
|
||||
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
|
||||
Systemd is a system and service manager, compatible with SysV and LSB
|
||||
@ -1369,19 +1372,27 @@ cp %{SOURCE7} m4/
|
||||
%endif
|
||||
%patch1023 -p0
|
||||
%patch1024 -p0
|
||||
%if %{with blkrrpart}
|
||||
%patch1025 -p1
|
||||
%endif
|
||||
%patch1026 -p1
|
||||
%if %{with blkrrpart}
|
||||
%patch1027 -p1
|
||||
%endif
|
||||
%patch1028 -p1
|
||||
%if %{with blkrrpart}
|
||||
%patch1029 -p1
|
||||
%patch1030 -p1
|
||||
%patch1031 -p1
|
||||
%patch1032 -p1
|
||||
%patch1033 -p1
|
||||
%patch1034 -p1
|
||||
%endif
|
||||
%patch1035 -p1
|
||||
%patch1036 -p1
|
||||
%if %{with blkrrpart}
|
||||
%patch1037 -p1
|
||||
%endif
|
||||
%patch1038 -p0
|
||||
%if %{with udevsettle}
|
||||
%patch1039 -p0
|
||||
@ -1402,6 +1413,9 @@ cp %{SOURCE7} m4/
|
||||
%patch1051 -p1
|
||||
%patch1052 -p0
|
||||
%patch1053 -p1
|
||||
%if %{with blkrrpart}
|
||||
%patch1054 -p0
|
||||
%endif
|
||||
|
||||
# ensure generate files are removed
|
||||
rm -f units/emergency.service
|
||||
|
Loading…
Reference in New Issue
Block a user