Remove latch.c workaround for Linux < 2.6.27.
authorThomas Munro <tmunro@postgresql.org>
Sun, 28 Feb 2021 21:44:21 +0000 (10:44 +1300)
committerThomas Munro <tmunro@postgresql.org>
Sun, 28 Feb 2021 22:24:28 +0000 (11:24 +1300)
Commit 82ebbeb0 added a workaround for systems with no epoll_create1()
and EPOLL_CLOEXEC.  Linux < 2.6.27 and glibc < 2.9 are long gone.  Now
seems like a good time to drop the extra code, because otherwise we'd
have to add similar already-dead workaround code to new patches using
XXX_CLOEXEC flags that arrived in the same kernel release.

Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://postgr.es/m/CA%2BhUKGKL_%3DaO%3Dr30N%3Ds9VoDgTqHpRSzePRbA9dkYO7snc7HsxA%40mail.gmail.com

src/backend/storage/ipc/latch.c

index f2d005eea054a0031439b4d2341476e37fd4e5e1..79b9627831fcadd07d6d0a4378a7f12988bc24aa 100644 (file)
@@ -666,31 +666,12 @@ CreateWaitEventSet(MemoryContext context, int nevents)
                /* treat this as though epoll_create1 itself returned EMFILE */
                elog(ERROR, "epoll_create1 failed: %m");
        }
-#ifdef EPOLL_CLOEXEC
        set->epoll_fd = epoll_create1(EPOLL_CLOEXEC);
        if (set->epoll_fd < 0)
        {
                ReleaseExternalFD();
                elog(ERROR, "epoll_create1 failed: %m");
        }
-#else
-       /* cope with ancient glibc lacking epoll_create1 (e.g., RHEL5) */
-       set->epoll_fd = epoll_create(nevents);
-       if (set->epoll_fd < 0)
-       {
-               ReleaseExternalFD();
-               elog(ERROR, "epoll_create failed: %m");
-       }
-       if (fcntl(set->epoll_fd, F_SETFD, FD_CLOEXEC) == -1)
-       {
-               int                     save_errno = errno;
-
-               close(set->epoll_fd);
-               ReleaseExternalFD();
-               errno = save_errno;
-               elog(ERROR, "fcntl(F_SETFD) failed on epoll descriptor: %m");
-       }
-#endif                                                 /* EPOLL_CLOEXEC */
 #elif defined(WAIT_USE_KQUEUE)
        if (!AcquireExternalFD())
        {
@@ -736,7 +717,7 @@ CreateWaitEventSet(MemoryContext context, int nevents)
  *
  * Note: preferably, this shouldn't have to free any resources that could be
  * inherited across an exec().  If it did, we'd likely leak those resources in
- * many scenarios.  For the epoll case, we ensure that by setting FD_CLOEXEC
+ * many scenarios.  For the epoll case, we ensure that by setting EPOLL_CLOEXEC
  * when the FD is created.  For the Windows case, we assume that the handles
  * involved are non-inheritable.
  */