summaryrefslogtreecommitdiffstats
path: root/sys/nfsclient
diff options
context:
space:
mode:
authordfr <dfr@FreeBSD.org>1997-06-03 17:22:47 +0000
committerdfr <dfr@FreeBSD.org>1997-06-03 17:22:47 +0000
commit99eae7b7b1d0dfe2463f468406efaea5f7258df8 (patch)
treeac6a203d84dfbdf93133d0f9bb62f4da2d4b8804 /sys/nfsclient
parenta70561d506231c0740e4c09afc2f53bc95a62073 (diff)
downloadFreeBSD-src-99eae7b7b1d0dfe2463f468406efaea5f7258df8.zip
FreeBSD-src-99eae7b7b1d0dfe2463f468406efaea5f7258df8.tar.gz
Various fixes from NetBSD:
Use u_int for rpc procedure numbers. Some fixes to NQNFS. A rare NULL pointer dereference. Ignore NFSMNT_NOCONN for TCP mounts. Obtained from: NetBSD
Diffstat (limited to 'sys/nfsclient')
-rw-r--r--sys/nfsclient/nfs.h6
-rw-r--r--sys/nfsclient/nfs_socket.c5
-rw-r--r--sys/nfsclient/nfs_vfsops.c9
-rw-r--r--sys/nfsclient/nfsargs.h6
-rw-r--r--sys/nfsclient/nfsstats.h6
5 files changed, 20 insertions, 12 deletions
diff --git a/sys/nfsclient/nfs.h b/sys/nfsclient/nfs.h
index 2dc19c1..3521dae 100644
--- a/sys/nfsclient/nfs.h
+++ b/sys/nfsclient/nfs.h
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* @(#)nfs.h 8.4 (Berkeley) 5/1/95
- * $Id: nfs.h,v 1.26 1997/05/13 17:25:44 dfr Exp $
+ * $Id: nfs.h,v 1.27 1997/05/19 14:36:46 dfr Exp $
*/
#ifndef _NFS_NFS_H_
@@ -333,7 +333,7 @@ struct nfsreq {
int r_retry; /* max retransmission count */
int r_rexmit; /* current retrans count */
int r_timer; /* tick counter on reply */
- int r_procnum; /* NFS procedure number */
+ u_int32_t r_procnum; /* NFS procedure number */
int r_rtt; /* RTT for rpc */
struct proc *r_procp; /* Proc that did I/O system call */
};
@@ -483,7 +483,7 @@ struct nfsrv_descript {
struct mbuf *nd_nam; /* and socket addr */
struct mbuf *nd_nam2; /* return socket addr */
caddr_t nd_dpos; /* Current dissect pos */
- int nd_procnum; /* RPC # */
+ u_int32_t nd_procnum; /* RPC # */
int nd_stable; /* storage type */
int nd_flag; /* nd_flag */
int nd_len; /* Length of this write */
diff --git a/sys/nfsclient/nfs_socket.c b/sys/nfsclient/nfs_socket.c
index c3e88e5..0ea7f69 100644
--- a/sys/nfsclient/nfs_socket.c
+++ b/sys/nfsclient/nfs_socket.c
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* @(#)nfs_socket.c 8.5 (Berkeley) 3/30/95
- * $Id: nfs_socket.c,v 1.24 1997/04/27 20:01:21 wollman Exp $
+ * $Id: nfs_socket.c,v 1.25 1997/05/13 17:25:44 dfr Exp $
*/
/*
@@ -1264,7 +1264,8 @@ nfs_rephead(siz, nd, slp, err, cache, frev, mrq, mbp, bposp)
*tl = 0;
}
}
- *mrq = mreq;
+ if (mrq != NULL)
+ *mrq = mreq;
*mbp = mb;
*bposp = bpos;
if (err != 0 && err != NFSERR_RETVOID)
diff --git a/sys/nfsclient/nfs_vfsops.c b/sys/nfsclient/nfs_vfsops.c
index 207b129..9bcc0f7 100644
--- a/sys/nfsclient/nfs_vfsops.c
+++ b/sys/nfsclient/nfs_vfsops.c
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* @(#)nfs_vfsops.c 8.12 (Berkeley) 5/20/95
- * $Id: nfs_vfsops.c,v 1.41 1997/05/11 18:05:38 tegge Exp $
+ * $Id: nfs_vfsops.c,v 1.42 1997/05/12 19:02:56 tegge Exp $
*/
#include <sys/param.h>
@@ -706,6 +706,13 @@ mountnfs(argp, mp, nam, pth, hst, vpp)
bcopy(pth, mp->mnt_stat.f_mntonname, MNAMELEN);
nmp->nm_nam = nam;
+ /*
+ * Silently clear NFSMNT_NOCONN if it's a TCP mount, it makes
+ * no sense in that context.
+ */
+ if (argp->sotype == SOCK_STREAM)
+ argp->flags &= ~NFSMNT_NOCONN;
+
if ((argp->flags & NFSMNT_TIMEO) && argp->timeo > 0) {
nmp->nm_timeo = (argp->timeo * NFS_HZ + 5) / 10;
if (nmp->nm_timeo < NFS_MINTIMEO)
diff --git a/sys/nfsclient/nfsargs.h b/sys/nfsclient/nfsargs.h
index 2dc19c1..3521dae 100644
--- a/sys/nfsclient/nfsargs.h
+++ b/sys/nfsclient/nfsargs.h
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* @(#)nfs.h 8.4 (Berkeley) 5/1/95
- * $Id: nfs.h,v 1.26 1997/05/13 17:25:44 dfr Exp $
+ * $Id: nfs.h,v 1.27 1997/05/19 14:36:46 dfr Exp $
*/
#ifndef _NFS_NFS_H_
@@ -333,7 +333,7 @@ struct nfsreq {
int r_retry; /* max retransmission count */
int r_rexmit; /* current retrans count */
int r_timer; /* tick counter on reply */
- int r_procnum; /* NFS procedure number */
+ u_int32_t r_procnum; /* NFS procedure number */
int r_rtt; /* RTT for rpc */
struct proc *r_procp; /* Proc that did I/O system call */
};
@@ -483,7 +483,7 @@ struct nfsrv_descript {
struct mbuf *nd_nam; /* and socket addr */
struct mbuf *nd_nam2; /* return socket addr */
caddr_t nd_dpos; /* Current dissect pos */
- int nd_procnum; /* RPC # */
+ u_int32_t nd_procnum; /* RPC # */
int nd_stable; /* storage type */
int nd_flag; /* nd_flag */
int nd_len; /* Length of this write */
diff --git a/sys/nfsclient/nfsstats.h b/sys/nfsclient/nfsstats.h
index 2dc19c1..3521dae 100644
--- a/sys/nfsclient/nfsstats.h
+++ b/sys/nfsclient/nfsstats.h
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* @(#)nfs.h 8.4 (Berkeley) 5/1/95
- * $Id: nfs.h,v 1.26 1997/05/13 17:25:44 dfr Exp $
+ * $Id: nfs.h,v 1.27 1997/05/19 14:36:46 dfr Exp $
*/
#ifndef _NFS_NFS_H_
@@ -333,7 +333,7 @@ struct nfsreq {
int r_retry; /* max retransmission count */
int r_rexmit; /* current retrans count */
int r_timer; /* tick counter on reply */
- int r_procnum; /* NFS procedure number */
+ u_int32_t r_procnum; /* NFS procedure number */
int r_rtt; /* RTT for rpc */
struct proc *r_procp; /* Proc that did I/O system call */
};
@@ -483,7 +483,7 @@ struct nfsrv_descript {
struct mbuf *nd_nam; /* and socket addr */
struct mbuf *nd_nam2; /* return socket addr */
caddr_t nd_dpos; /* Current dissect pos */
- int nd_procnum; /* RPC # */
+ u_int32_t nd_procnum; /* RPC # */
int nd_stable; /* storage type */
int nd_flag; /* nd_flag */
int nd_len; /* Length of this write */
OpenPOWER on IntegriCloud