xserver: Return EEXIST if unlinking lockfile fails
authorKristian Høgsberg <krh@bitplanet.net>
Tue, 10 Apr 2012 02:14:52 +0000 (22:14 -0400)
committerKristian Høgsberg <krh@bitplanet.net>
Tue, 10 Apr 2012 04:04:57 +0000 (00:04 -0400)
Otherwise we'll keep trying to unlink it.

src/xserver-launcher.c

index d3657c8..88ceb0c 100644 (file)
@@ -1654,9 +1654,13 @@ create_lockfile(int display, char *lockfile, size_t lsize)
                        /* stale lock file; unlink and try again */
                        fprintf(stderr,
                                "unlinking stale lock file %s\n", lockfile);
-                       unlink(lockfile);
-                       errno = EAGAIN;
                        close(fd);
+                       if (unlink(lockfile))
+                               /* If we fail to unlink, return EEXIST
+                                  so we try the next display number.*/
+                               errno = EEXIST;
+                       else
+                               errno = EAGAIN;
                        return -1;
                }