chiark / gitweb /
systemctl: make shutdown operations use irreversible jobs
[elogind.git] / src / login / logind-dbus.c
index f35185971bb777c5bf612a2061321b47fc8a876d..818f2fa808e2163ea0ff9c2714a86840d715a79e 100644 (file)
@@ -33,6 +33,8 @@
 #include "special.h"
 #include "systemd/sd-id128.h"
 #include "systemd/sd-messages.h"
+#include "fileio-label.h"
+#include "label.h"
 
 #define BUS_MANAGER_INTERFACE                                           \
         " <interface name=\"org.freedesktop.login1.Manager\">\n"        \
@@ -937,7 +939,8 @@ static int attach_device(Manager *m, const char *seat, const char *sysfs) {
         }
 
         mkdir_p_label("/etc/udev/rules.d", 0755);
-        r = write_one_line_file_atomic(file, rule);
+        label_init("/etc");
+        r = write_one_line_file_atomic_label(file, rule);
         if (r < 0)
                 goto finish;
 
@@ -1048,7 +1051,7 @@ static int execute_shutdown_or_sleep(
                 DBusError *error) {
 
         _cleanup_dbus_message_unref_ DBusMessage *reply = NULL;
-        const char *mode = "replace", *p;
+        const char *mode = "replace-irreversibly", *p;
         int r;
         char *c;