[systemd-commits] src/user-sessions.c

Lennart Poettering lennart at kemper.freedesktop.org
Tue May 10 09:55:49 PDT 2011


 src/user-sessions.c |   12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

New commits:
commit bd118f8e2262d5703120442aa48bd942d2116b75
Author: Lennart Poettering <lennart at poettering.net>
Date:   Tue May 10 18:55:39 2011 +0200

    user-sessions: ignore EROFS when unlinking /etc/nologin if the file doesn't exist anyway

diff --git a/src/user-sessions.c b/src/user-sessions.c
index 4518d95..e045b88 100644
--- a/src/user-sessions.c
+++ b/src/user-sessions.c
@@ -48,8 +48,16 @@ int main(int argc, char*argv[]) {
                 }
 
                 if (unlink("/etc/nologin") < 0 && errno != ENOENT) {
-                        log_error("Failed to remove /etc/nologin file: %m");
-                        q = -errno;
+
+                        /* If the file doesn't exist and /etc simply
+                         * was read-only (in which case unlink()
+                         * returns EROFS even if the file doesn't
+                         * exist), don't complain */
+
+                        if (errno != EROFS || access("/etc/nologin", F_OK) >= 0) {
+                                log_error("Failed to remove /etc/nologin file: %m");
+                                q = -errno;
+                        }
                 }
 
                 if (r < 0 || q < 0)



More information about the systemd-commits mailing list