chiark / gitweb /
user-sessions: properly unlink both nologin files
authorLennart Poettering <lennart@poettering.net>
Thu, 7 Oct 2010 21:16:48 +0000 (23:16 +0200)
committerLennart Poettering <lennart@poettering.net>
Thu, 7 Oct 2010 21:16:48 +0000 (23:16 +0200)
src/user-sessions.c

index dc4ee0fb4ac402a7c3332777b864f994812e4799..8026961560906818a9f2426af484d1ccb5383e22 100644 (file)
@@ -40,16 +40,21 @@ int main(int argc, char*argv[]) {
         log_open();
 
         if (streq(argv[1], "start")) {
+                int q = 0, r = 0;
 
-                if (unlink("/var/run/nologin") < 0 ||
-                    unlink("/etc/nologin") < 0) {
+                if (unlink("/var/run/nologin") < 0 && errno != ENOENT) {
+                        log_error("Failed to remove /var/run/nologin file: %m");
+                        r = -errno;
+                }
 
-                        if (errno != ENOENT) {
-                                log_error("Failed to remove nologin files: %m");
-                                goto finish;
-                        }
+                if (unlink("/etc/nologin") < 0 && errno != ENOENT) {
+                        log_error("Failed to remove /etc/nologin file: %m");
+                        q = -errno;
                 }
 
+                if (r < 0 || q < 0)
+                        goto finish;
+
         } else if (streq(argv[1], "stop")) {
                 int r, q;