]> git.pld-linux.org Git - packages/autofs.git/commitdiff
- outdated (I assume)
authorJakub Bogusz <qboosh@pld-linux.org>
Mon, 14 Nov 2005 20:45:32 +0000 (20:45 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    autofs-4.1.3-bad_chdir.patch -> 1.2
    autofs-4.1.3-mtab_lock.patch -> 1.2
    autofs-4.1.3-non_block_ping.patch -> 1.2
    autofs-4.1.3-signal-race-fix.patch -> 1.2
    autofs-4.1.3-sock-leak-fix.patch -> 1.2
    autofs-4.1.3-strict.patch -> 1.2

autofs-4.1.3-bad_chdir.patch [deleted file]
autofs-4.1.3-mtab_lock.patch [deleted file]
autofs-4.1.3-non_block_ping.patch [deleted file]
autofs-4.1.3-signal-race-fix.patch [deleted file]
autofs-4.1.3-sock-leak-fix.patch [deleted file]
autofs-4.1.3-strict.patch [deleted file]

diff --git a/autofs-4.1.3-bad_chdir.patch b/autofs-4.1.3-bad_chdir.patch
deleted file mode 100644 (file)
index 79c38d9..0000000
+++ /dev/null
@@ -1,233 +0,0 @@
-diff -Nur autofs-4.1.3.orig/daemon/automount.c autofs-4.1.3/daemon/automount.c
---- autofs-4.1.3.orig/daemon/automount.c       2004-04-05 21:14:10.000000000 +0800
-+++ autofs-4.1.3/daemon/automount.c    2004-06-05 21:13:28.000000000 +0800
-@@ -99,8 +99,11 @@
-                                       if (stat(buf, &st) == 0 && !S_ISDIR(st.st_mode))
-                                               errno = ENOTDIR;
--                                      else
--                                              continue;
-+                                      else {
-+                                              /* last component, return -1 */
-+                                              if (*cp != '\0')
-+                                                      continue;
-+                                      }
-                               }
-                               return -1;
-                       }
-@@ -1088,9 +1091,11 @@
-                       close(ap.state_pipe[0]);
-                       close(ap.state_pipe[1]);
-+                      chdir(ap.path);
-                       err = ap.lookup->lookup_mount(ap.path,
-                                                     pkt->name, pkt->len,
-                                                     ap.lookup->context);
-+                      chdir("/");
-                       /*
-                        * If at first you don't succeed, hide all
-@@ -1163,8 +1168,11 @@
-                  it.
-                */
-+              chdir(ap.path);
-               ret = ap.lookup->lookup_mount(ap.path, 
-                                       name, namelen, ap.lookup->context);
-+              chdir("/");
-+
-               if (ret)
-                       error("failed to recover from partial expiry of %s\n",
-                              buf);
-diff -Nur autofs-4.1.3.orig/modules/mount_bind.c autofs-4.1.3/modules/mount_bind.c
---- autofs-4.1.3.orig/modules/mount_bind.c     2004-05-10 20:44:30.000000000 +0800
-+++ autofs-4.1.3/modules/mount_bind.c  2004-06-05 18:12:38.000000000 +0800
-@@ -107,15 +107,19 @@
-               fullpath[i] = '\0';
-       if (bind_works) {
--              int status;
-+              int status, existed = 1;
-               debug(MODPREFIX "calling mkdir_path %s", fullpath);
--              if ((status = mkdir_path(fullpath, 0555)) && errno != EEXIST) {
-+              status = mkdir_path(fullpath, 0555);
-+              if (status && errno != EEXIST) {
-                       error(MODPREFIX "mkdir_path %s failed: %m", fullpath);
-                       return 1;
-               }
-+              if (!status)
-+                      existed = 0;
-+
-               if (is_mounted(fullpath)) {
-                       warn("BUG: %s already mounted", fullpath);
-                       return 0;
-@@ -130,7 +134,7 @@
-               unlink(AUTOFS_LOCK);
-               if (err) {
--                      if (!ap.ghost && name_len)
-+                      if ((!ap.ghost && name_len) || !existed)
-                               rmdir_path(name);
-                       return 1;
-               } else {
-diff -Nur autofs-4.1.3.orig/modules/mount_changer.c autofs-4.1.3/modules/mount_changer.c
---- autofs-4.1.3.orig/modules/mount_changer.c  2004-05-10 20:44:30.000000000 +0800
-+++ autofs-4.1.3/modules/mount_changer.c       2004-06-05 18:18:04.000000000 +0800
-@@ -52,7 +52,7 @@
- {
-       char *fullpath;
-       int err;
--      int status;
-+      int status, existed = 1;
-       fstype = "iso9660";
-@@ -80,11 +80,15 @@
-       debug(MODPREFIX "calling mkdir_path %s", fullpath);
--      if ((status = mkdir_path(fullpath, 0555)) && errno != EEXIST) {
-+      status = mkdir_path(fullpath, 0555);
-+      if (status && errno != EEXIST) {
-               error(MODPREFIX "mkdir_path %s failed: %m", fullpath);
-               return 1;
-       }
-+      if (!status)
-+              existed = 0;
-+
-       debug(MODPREFIX "Swapping CD to slot %s", name);
-       err = swapCD(what, name);
-@@ -111,7 +115,7 @@
-       unlink(AUTOFS_LOCK);
-       if (err) {
--              if (!ap.ghost && name_len)
-+              if ((!ap.ghost && name_len) || !existed)
-                       rmdir_path(name);
-               error(MODPREFIX "failed to mount %s (type %s) on %s",
-diff -Nur autofs-4.1.3.orig/modules/mount_ext2.c autofs-4.1.3/modules/mount_ext2.c
---- autofs-4.1.3.orig/modules/mount_ext2.c     2004-05-10 20:44:30.000000000 +0800
-+++ autofs-4.1.3/modules/mount_ext2.c  2004-06-05 18:23:09.000000000 +0800
-@@ -40,7 +40,6 @@
-       return 0;
- }
--
- int mount_mount(const char *root, const char *name, int name_len,
-               const char *what, const char *fstype, const char *options, void *context)
- {
-@@ -48,7 +47,7 @@
-       const char *p, *p1;
-       int err, ro = 0;
-       const char *fsck_prog;
--      int status;
-+      int status, existed = 1;
-       fullpath = alloca(strlen(root) + name_len + 2);
-       if (!fullpath) {
-@@ -63,11 +62,15 @@
-       debug(MODPREFIX "calling mkdir_path %s", fullpath);
--      if ((status = mkdir_path(fullpath, 0555)) && errno != EEXIST) {
-+      status = mkdir_path(fullpath, 0555);
-+      if (status && errno != EEXIST) {
-               error(MODPREFIX "mkdir_path %s failed: %m", fullpath);
-               return 1;
-       }
-+      if (!status)
-+              existed = 0;
-+
-       if (is_mounted(fullpath)) {
-               error("BUG: %s already mounted", fullpath);
-               return 0;
-@@ -120,7 +123,7 @@
-       unlink(AUTOFS_LOCK);
-       if (err) {
--              if (!ap.ghost && name_len)
-+              if ((!ap.ghost && name_len) || !existed)
-                       rmdir_path(name);
-               error(MODPREFIX "failed to mount %s (type %s) on %s",
-                     what, fstype, fullpath);
-diff -Nur autofs-4.1.3.orig/modules/mount_generic.c autofs-4.1.3/modules/mount_generic.c
---- autofs-4.1.3.orig/modules/mount_generic.c  2004-05-10 20:44:30.000000000 +0800
-+++ autofs-4.1.3/modules/mount_generic.c       2004-06-05 18:22:10.000000000 +0800
-@@ -46,7 +46,7 @@
- {
-       char *fullpath;
-       int err;
--      int status;
-+      int status, existed = 1;
-       fullpath = alloca(strlen(root) + name_len + 2);
-       if (!fullpath) {
-@@ -61,11 +61,15 @@
-       debug(MODPREFIX "calling mkdir_path %s", fullpath);
--      if ((status = mkdir_path(fullpath, 0555)) && errno != EEXIST) {
-+      status = mkdir_path(fullpath, 0555);
-+      if (status && errno != EEXIST) {
-               error(MODPREFIX "mkdir_path %s failed: %m", fullpath);
-               return 1;
-       }
-+      if (!status)
-+              existed = 0;
-+
-       if (is_mounted(fullpath)) {
-               error("BUG: %s already mounted", fullpath);
-               return 0;
-@@ -89,7 +93,7 @@
-       unlink(AUTOFS_LOCK);
-       if (err) {
--              if (!ap.ghost && name_len)
-+              if ((!ap.ghost && name_len) || !existed)
-                       rmdir_path(name);
-               error(MODPREFIX "failed to mount %s (type %s) on %s",
-diff -Nur autofs-4.1.3.orig/modules/mount_nfs.c autofs-4.1.3/modules/mount_nfs.c
---- autofs-4.1.3.orig/modules/mount_nfs.c      2004-06-05 14:24:58.000000000 +0800
-+++ autofs-4.1.3/modules/mount_nfs.c   2004-06-05 21:10:17.000000000 +0800
-@@ -445,14 +445,19 @@
-                              whatstr, "bind", NULL, mount_bind->context);
-       } else {
-               /* Not a local host - do an NFS mount */
--              int status;
-+              int status, existed = 1;
-               debug(MODPREFIX "calling mkdir_path %s", fullpath);
--              if ((status = mkdir_path(fullpath, 0555)) && errno != EEXIST) {
-+
-+              status = mkdir_path(fullpath, 0555);
-+              if (status && errno != EEXIST) {
-                       error(MODPREFIX "mkdir_path %s failed: %m", fullpath);
-                       return 1;
-               }
-+              if (!status)
-+                      existed = 0;
-+
-               if (is_mounted(fullpath)) {
-                       error("BUG: %s already mounted", fullpath);
-                       return 0;
-@@ -477,8 +482,9 @@
-               unlink(AUTOFS_LOCK);
-               if (err) {
--                      if (!ap.ghost && name_len)
-+                      if ((!ap.ghost && name_len) || !existed)
-                               rmdir_path(name);
-+
-                       error(MODPREFIX "nfs: mount failure %s on %s",
-                             whatstr, fullpath);
-                       return 1;
diff --git a/autofs-4.1.3-mtab_lock.patch b/autofs-4.1.3-mtab_lock.patch
deleted file mode 100644 (file)
index 46c9fac..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- autofs-4.1.3.orig/include/automount.h      2004-05-18 20:20:08.000000000 +0800
-+++ autofs-4.1.3/include/automount.h   2004-06-05 16:26:39.000000000 +0800
-@@ -36,7 +36,7 @@
- #define DEFAULT_TIMEOUT (5*60)                        /* 5 minutes */
- #define AUTOFS_LOCK   "/var/lock/autofs"      /* To serialize access to mount */
--#define MOUNTED_LOCK  "_PATH_MOUNTED~"        /* mounts' lock file */
-+#define MOUNTED_LOCK  _PATH_MOUNTED "~"       /* mounts' lock file */
- #define MTAB_NOTUPDATED 0x1000                        /* mtab succeded but not updated */
- #define NOT_MOUNTED     0x0100                        /* path notmounted */
diff --git a/autofs-4.1.3-non_block_ping.patch b/autofs-4.1.3-non_block_ping.patch
deleted file mode 100644 (file)
index f365084..0000000
+++ /dev/null
@@ -1,343 +0,0 @@
-diff -Nur autofs-4.1.3.orig/lib/rpc_subs.c autofs-4.1.3/lib/rpc_subs.c
---- autofs-4.1.3.orig/lib/rpc_subs.c   2004-06-14 21:55:29.000000000 +0800
-+++ autofs-4.1.3/lib/rpc_subs.c        2004-06-14 21:54:35.000000000 +0800
-@@ -1,38 +1,284 @@
-+/* ----------------------------------------------------------------------- *
-+ *   
-+ *  rpc_subs.c - routines for rpc discovery
-+ *
-+ *   Copyright 2004 Ian Kent <raven@themaw.net> - All Rights Reserved
-+ *   Copyright 2004 Jeff Moyer <jmoyer@redaht.com> - All Rights Reserved
-+ *
-+ *   This program is free software; you can redistribute it and/or modify
-+ *   it under the terms of the GNU General Public License as published by
-+ *   the Free Software Foundation, Inc., 675 Mass Ave, Cambridge MA 02139,
-+ *   USA; either version 2 of the License, or (at your option) any later
-+ *   version; incorporated herein by reference.
-+ *
-+ * ----------------------------------------------------------------------- */
-+
- #include <rpc/rpc.h>
-+#include <rpc/pmap_prot.h>
- #include <nfs/nfs.h>
- #include <linux/nfs2.h>
- #include <linux/nfs3.h>
- #include <rpc/xdr.h>
-- 
-+
-+#include <unistd.h>
-+#include <sys/socket.h>
-+#include <netdb.h>
-+#include <netinet/in.h>
-+#include <sys/fcntl.h>
-+#include <errno.h>
-+
- #include "automount.h"
-+#define PMAP_TOUT_UDP 2
-+#define PMAP_TOUT_TCP 3
-+
-+struct conn_info {
-+      const char *host;
-+      unsigned short port;
-+      unsigned long program;
-+      unsigned long version;
-+      struct protoent *proto;
-+      unsigned int send_sz;
-+      unsigned int recv_sz;
-+      struct timeval timeout;
-+};
-+
-+/*
-+ * Create a UDP RPC client
-+ */
-+static CLIENT* create_udp_client(struct conn_info *info)
-+{
-+      int fd = -1;
-+      CLIENT *client;
-+      struct sockaddr_in addr;
-+      struct hostent *hp;
-+
-+      if (info->proto->p_proto != IPPROTO_UDP)
-+              return NULL;
-+
-+      memset(&addr, 0, sizeof(addr));
-+
-+      hp = gethostbyname(info->host);
-+      if (!hp)
-+              return NULL;
-+
-+      addr.sin_family = AF_INET;
-+      addr.sin_port = htons(info->port);
-+      memcpy(&addr.sin_addr.s_addr, hp->h_addr, hp->h_length);
-+
-+      client = clntudp_bufcreate(&addr,
-+                                 info->program, info->version,
-+                                 info->timeout, &fd,
-+                                 info->send_sz, info->recv_sz);
-+
-+      return client;
-+}
-+
-+/*
-+ *  Perform a non-blocking connect on the socket fd.
-+ *
-+ *  tout contains the timeout.  It will be modified to contain the time
-+ *  remaining (i.e. time provided - time elasped).
-+ */
-+static int connect_nb(int fd, struct sockaddr_in *addr, struct timeval *tout)
-+{
-+      int flags, ret, len;
-+      fd_set wset, rset;
-+
-+      flags = fcntl(fd, F_GETFL, 0);
-+      if (flags < 0)
-+              return -1;
-+
-+      ret = fcntl(fd, F_SETFL, flags | O_NONBLOCK);
-+      if (ret < 0)
-+              return -1;
-+
-+      /* 
-+       * From here on subsequent sys calls could change errno so
-+       * we set ret = -errno to capture it in case we decide to
-+       * use it later.
-+       */
-+      ret = connect(fd, (struct sockaddr *)addr, sizeof(struct sockaddr));
-+      if (ret < 0 && errno != EINPROGRESS) {
-+              ret = -errno;
-+              goto done;
-+      }
-+
-+      if (ret == 0)
-+              goto done;
-+
-+      /* now wait */
-+      FD_ZERO(&rset);
-+      FD_SET(fd, &rset);
-+      wset = rset;
-+
-+      ret = select(fd + 1, &rset, &wset, NULL, tout);
-+      if (ret <= 0) {
-+              if (ret == 0)
-+                      ret = -ETIMEDOUT;
-+              else
-+                      ret = -errno;
-+              goto done;
-+      }
-+
-+      if (FD_ISSET(fd, &rset) || FD_ISSET(fd, &wset)) {
-+              int stat;
-+
-+              len = sizeof(ret);
-+              stat = getsockopt(fd, SOL_SOCKET, SO_ERROR, &ret, &len);
-+              if (stat < 0) {
-+                      ret = -errno;
-+                      goto done;
-+              }
-+
-+              /* Oops - something wrong with connect */
-+              if (ret)
-+                      ret = -ret;
-+      }
-+
-+done:
-+      fcntl(fd, F_SETFL, flags);
-+      return ret;
-+}
-+
-+/*
-+ * Create a TCP RPC client using non-blocking connect
-+ */
-+static CLIENT* create_tcp_client(struct conn_info *info)
-+{
-+      int fd;
-+      CLIENT *client;
-+      struct sockaddr_in addr;
-+      struct hostent *hp;
-+      int ret;
-+
-+      if (info->proto->p_proto != IPPROTO_TCP)
-+              return NULL;
-+
-+      memset(&addr, 0, sizeof(addr));
-+
-+      hp = gethostbyname(info->host);
-+      if (!hp)
-+              return NULL;
-+
-+      addr.sin_family = AF_INET;
-+      addr.sin_port = htons(info->port);
-+      memcpy(&addr.sin_addr.s_addr, hp->h_addr, hp->h_length);
-+
-+      fd = socket(PF_INET, SOCK_STREAM, info->proto->p_proto);
-+      if (fd < 0)
-+              return NULL;
-+
-+      ret = connect_nb(fd, &addr, &info->timeout);
-+      if (ret < 0)
-+              goto out_close;
-+
-+      client = clnttcp_create(&addr,
-+                              info->program, info->version, &fd,
-+                              info->send_sz, info->recv_sz);
-+      if (!client)
-+              goto out_close;
-+
-+      return client;
-+
-+out_close:
-+      close(fd);
-+      return NULL;
-+}
-+
-+static unsigned short portmap_getport(struct conn_info *info)
-+{
-+      struct conn_info pmap_info;
-+      unsigned short port = 0;
-+      CLIENT *client;
-+      enum clnt_stat stat;
-+      struct pmap parms;
-+
-+      pmap_info.host = info->host;
-+      pmap_info.port = PMAPPORT;
-+      pmap_info.program = PMAPPROG;
-+      pmap_info.version = PMAPVERS;
-+      pmap_info.proto = info->proto;
-+      pmap_info.send_sz = RPCSMALLMSGSIZE;
-+      pmap_info.recv_sz = RPCSMALLMSGSIZE;
-+      pmap_info.timeout.tv_sec = PMAP_TOUT_UDP;
-+      pmap_info.timeout.tv_usec = 0;
-+
-+      if (info->proto->p_proto == IPPROTO_TCP) {
-+              pmap_info.timeout.tv_sec = PMAP_TOUT_TCP;
-+              client = create_tcp_client(&pmap_info);
-+      } else
-+              client = create_udp_client(&pmap_info);
-+
-+      if (!client)
-+              return 0;
-+      
-+      parms.pm_prog = info->program;
-+      parms.pm_vers = info->version;
-+      parms.pm_prot = info->proto->p_proto;
-+      parms.pm_port = 0;
-+
-+      stat = clnt_call(client, PMAPPROC_GETPORT,
-+                       (xdrproc_t) xdr_pmap, (caddr_t) &parms,
-+                       (xdrproc_t) xdr_u_short, (caddr_t) &port,
-+                       pmap_info.timeout);
-+
-+      clnt_destroy(client);
-+
-+      if (stat != RPC_SUCCESS)
-+              return 0;
-+
-+      return port;
-+}
-+
- static int rpc_ping_proto(const char *host,
--                        unsigned long nfs_version, const char *proto,
-+                        unsigned long nfs_version,
-+                        const char *proto,
-                         long seconds, long micros)
- {
-+      struct conn_info info;
-       CLIENT *client;
--      struct timeval tout;
-       enum clnt_stat stat;
-+      struct protoent *prot;
-+
-+      prot = getprotobyname(proto);
-+      if (!prot)
-+              return 1;
-+
-+      info.host = host;
-+      info.program = NFS_PROGRAM;
-+      info.version = nfs_version;
-+      info.proto = prot;
-+      info.send_sz = 0;
-+      info.recv_sz = 0;
-+      info.timeout.tv_sec = seconds;
-+      info.timeout.tv_usec = micros;
--      client = clnt_create(host, NFS_PROGRAM, nfs_version, proto);
--      if (client == NULL) {
-+      info.port = portmap_getport(&info);
-+      if (!info.port)
-               return 0;
--      }
--      tout.tv_sec = seconds;
--      tout.tv_usec = micros;
-+      if (prot->p_proto == IPPROTO_UDP) {
-+              info.send_sz = UDPMSGSIZE;
-+              info.recv_sz = UDPMSGSIZE;
-+              client = create_udp_client(&info);
-+      } else
-+              client = create_tcp_client(&info);
-+
-+      if (!client)
-+              return 0;
--      clnt_control(client, CLSET_TIMEOUT, (char *)&tout);
--      clnt_control(client, CLSET_RETRY_TIMEOUT, (char *)&tout);
-+      clnt_control(client, CLSET_TIMEOUT, (char *) &info.timeout);
-+      clnt_control(client, CLSET_RETRY_TIMEOUT, (char *) &info.timeout);
-       stat = clnt_call(client, NFSPROC_NULL,
--                       (xdrproc_t)xdr_void, 0, (xdrproc_t)xdr_void, 0, tout);
-+                       (xdrproc_t) xdr_void, 0, (xdrproc_t) xdr_void, 0,
-+                       info.timeout);
-       clnt_destroy(client);
--      if (stat != RPC_SUCCESS) {
-+      if (stat != RPC_SUCCESS)
-               return 0;
--      }
-       return 1;
- }
-@@ -108,10 +354,39 @@
-       taken = elapsed(start, end);
--      if (result != NULL) {
-+      if (result != NULL)
-               *result = taken;
--      }
-       return status;
- }
-+#if 0
-+#include <stdio.h>
-+
-+int main(int argc, char **argv)
-+{
-+      int ret;
-+      double res = 0.0;
-+
-+      ret = rpc_ping("budgie", 10, 0);
-+      printf("ret = %d\n", ret);
-+
-+      res = 0.0;
-+      ret = rpc_time("raven", NFS2_VERSION, RPC_PING_TCP, 10, 0, &res);
-+      printf("v2 tcp ret = %d, res = %f\n", ret, res);
-+
-+      res = 0.0;
-+      ret = rpc_time("raven", NFS3_VERSION, RPC_PING_TCP, 10, 0, &res);
-+      printf("v3 tcp ret = %d, res = %f\n", ret, res);
-+
-+      res = 0.0;
-+      ret = rpc_time("raven", NFS2_VERSION, RPC_PING_UDP, 10, 0, &res);
-+      printf("v2 udp ret = %d, res = %f\n", ret, res);
-+
-+      res = 0.0;
-+      ret = rpc_time("raven", NFS3_VERSION, RPC_PING_UDP, 10, 0, &res);
-+      printf("v3 udp ret = %d, res = %f\n", ret, res);
-+
-+      exit(0);
-+}
-+#endif
diff --git a/autofs-4.1.3-signal-race-fix.patch b/autofs-4.1.3-signal-race-fix.patch
deleted file mode 100644 (file)
index 1906e46..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
---- autofs-4.1.3/daemon/automount.c.orig       2004-08-18 11:23:49.430470256 -0400
-+++ autofs-4.1.3/daemon/automount.c    2004-08-18 11:24:45.047015256 -0400
-@@ -848,10 +848,10 @@ static int st_prepare_shutdown(void)
-       alarm(0);
-       /* Prevent any new mounts */
--      ap.state = ST_SHUTDOWN_PENDING;
--
-       sigprocmask(SIG_SETMASK, &lock_sigs, NULL);
-+      ap.state = ST_SHUTDOWN_PENDING;
-+
-       /* Unmount everything */
-       exp = expire_proc(1);
-@@ -919,8 +919,8 @@ static int st_expire(void)
-               return 1;
-       case EXP_STARTED:
--              ap.state = ST_EXPIRE;
-               sigprocmask(SIG_SETMASK, &ready_sigs, NULL);
-+              ap.state = ST_EXPIRE;
-               return 0;
-       }
-       return 1;
diff --git a/autofs-4.1.3-sock-leak-fix.patch b/autofs-4.1.3-sock-leak-fix.patch
deleted file mode 100644 (file)
index df7d9bc..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
---- autofs-4.1.3-devel/lib/rpc_subs.c~ 2004-08-04 13:20:30.000000000 -0400
-+++ autofs-4.1.3-devel/lib/rpc_subs.c  2004-08-18 13:37:14.123571936 -0400
-@@ -34,6 +34,7 @@
- struct conn_info {
-       const char *host;
-+      int fd;
-       unsigned short port;
-       unsigned long program;
-       unsigned long version;
-@@ -48,7 +49,6 @@ struct conn_info {
-  */
- static CLIENT* create_udp_client(struct conn_info *info)
- {
--      int fd = -1;
-       CLIENT *client;
-       struct sockaddr_in addr;
-       struct hostent *hp;
-@@ -62,13 +62,14 @@ static CLIENT* create_udp_client(struct 
-       if (!hp)
-               return NULL;
-+      info->fd = RPC_ANYSOCK;
-       addr.sin_family = AF_INET;
-       addr.sin_port = htons(info->port);
-       memcpy(&addr.sin_addr.s_addr, hp->h_addr, hp->h_length);
-       client = clntudp_bufcreate(&addr,
-                                  info->program, info->version,
--                                 info->timeout, &fd,
-+                                 info->timeout, &info->fd,
-                                  info->send_sz, info->recv_sz);
-       return client;
-@@ -169,6 +170,7 @@ static CLIENT* create_tcp_client(struct 
-       if (!client)
-               goto out_close;
-+      info->fd = fd;
-       return client;
- out_close:
-@@ -214,6 +216,7 @@ static unsigned short portmap_getport(st
-                        pmap_info.timeout);
-       clnt_destroy(client);
-+      close(pmap_info.fd);
-       if (stat != RPC_SUCCESS)
-               return 0;
diff --git a/autofs-4.1.3-strict.patch b/autofs-4.1.3-strict.patch
deleted file mode 100644 (file)
index 8ff11a4..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-
-Problem: infinite error loop occurs when trying to access non-exitent
-         directory.
-
-This patch, for 4.1.3, fixes the problem caused when the default for
-multi-mounts was changed from strict to non-strict. This change tickled
-a bug in the old autofs4 kernel module found in 2.4 kernels and 2.6
-kernels to date (ie. < 2.6.7).
-
-This change in default caused a small change in mount logic which went
-unnoticed and lead to this problem. So the kernel interaction problem
-remains but is much less likely to occur. If this problem persists
-after applying this patch then update your kernel autofs4.
-
-The patch restores the previous logic but leaves the new default.
-
-diff -Nur autofs-4.1.3.orig/modules/parse_sun.c autofs-4.1.3/modules/parse_sun.c
---- autofs-4.1.3.orig/modules/parse_sun.c      2004-05-18 20:22:40.000000000 +0800
-+++ autofs-4.1.3/modules/parse_sun.c   2004-05-29 15:38:42.000000000 +0800
-@@ -602,10 +602,8 @@
-                             options);
-       }
--      if (nonstrict && rv) {
--              debug("ignoring failure of non-strict mount");
--              return 0;
--      }
-+      if (nonstrict && rv)
-+              return -rv;
-       return rv;
- }
-@@ -746,7 +744,11 @@
-                       free(loc);
-                       free(myoptions);
--                      if (rv)
-+                      /* Convert non-strict failure into success */
-+                      if (rv < 0) {
-+                              rv = 0;
-+                              debug("parse_mount: ignoring failure of non-strict mount");
-+                      } else if (rv > 0)
-                               break;
-               } while (*p == '/');
-@@ -789,6 +791,10 @@
-                     options, loclen, loc);
-               rv = sun_mount(root, name, name_len, loc, loclen, options);
-+              /* non-strict failure to normal failure for ordinary mount */
-+              if (rv < 0)
-+                      rv = -rv;
-+                      
-               free(loc);
-               free(options);
-       }
This page took 0.129139 seconds and 4 git commands to generate.