]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
Revert "device : reload when udev generates a "changed" event" (#6836)
authorMartin Pitt <martinpitt@users.noreply.github.com>
Fri, 15 Sep 2017 07:21:49 +0000 (09:21 +0200)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Fri, 15 Sep 2017 07:21:49 +0000 (09:21 +0200)
This reverts commit 0ffddc6e2c6e19e5dc81812aee9fbe964059f3aa. That
causes a rather severe disruption of D-Bus and other services when e. g.
restarting local-fs.target (as spotted by the "storage" test regression).

Fixes #6834

man/systemd.device.xml
src/core/device.c

index 6edf1090d0e0409b66b62d8336e86bcefadf0b67..c60b9c035ef98081c71f7d65895b591103b70bc7 100644 (file)
     the escaping logic used to convert a file system path to a unit
     name see
     <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para>
-
-    <para>Device units will be reloaded by systemd whenever the
-    corresponding device generates a <literal>changed</literal> event.
-    Other units can use <varname>ReloadPropagatedFrom=</varname> to react
-    to that event</para>
-
   </refsect1>
 
   <refsect1>
index 5366ba050ffc7d6e6da54d4955092c144b7729cf..87186f135bf817f15fcd5205980a94f49aa08dd9 100644 (file)
@@ -766,27 +766,7 @@ static int device_dispatch_io(sd_event_source *source, int fd, uint32_t revents,
                 return 0;
         }
 
-        if (streq(action, "change"))  {
-                _cleanup_free_ char *e = NULL;
-                Unit *u;
-
-                r = unit_name_from_path(sysfs, ".device", &e);
-                if (r < 0)
-                        return log_error_errno(r, "Failed to generate unit name from device path: %m");
-
-                u = manager_get_unit(m, e);
-                if (!u) {
-                        log_error("Failed to get unit from sysfs name.");
-                        return 0;
-                }
-
-                r = manager_add_job(m, JOB_RELOAD, u, JOB_REPLACE, NULL, NULL);
-                if (r < 0) {
-                        log_error_errno(r, "Failed to add job to manager : %m");
-                        return 0;
-                }
-
-        } else if (streq(action, "remove"))  {
+        if (streq(action, "remove"))  {
                 r = swap_process_device_remove(m, dev);
                 if (r < 0)
                         log_error_errno(r, "Failed to process swap device remove event: %m");