aboutsummaryrefslogtreecommitdiff
path: root/sys/nfs
diff options
context:
space:
mode:
authorsvn2git <svn2git@FreeBSD.org>1994-05-01 08:00:00 +0000
committersvn2git <svn2git@FreeBSD.org>1994-05-01 08:00:00 +0000
commita16f65c7d117419bd266c28a1901ef129a337569 (patch)
tree2626602f66dc3551e7a7c7bc9ad763c3bc7ab40a /sys/nfs
parent8503f4f13f77abf7adc8f7e329c6f9c1d52b6a20 (diff)
Diffstat (limited to 'sys/nfs')
-rw-r--r--sys/nfs/nfs.h4
-rw-r--r--sys/nfs/nfs_bio.c8
-rw-r--r--sys/nfs/nfs_node.c6
-rw-r--r--sys/nfs/nfs_serv.c15
-rw-r--r--sys/nfs/nfs_socket.c8
-rw-r--r--sys/nfs/nfs_subs.c14
-rw-r--r--sys/nfs/nfs_syscalls.c5
-rw-r--r--sys/nfs/nfs_vfsops.c10
-rw-r--r--sys/nfs/nfs_vnops.c19
-rw-r--r--sys/nfs/nfsdiskless.h7
-rw-r--r--sys/nfs/nfsm_subs.h36
-rw-r--r--sys/nfs/nfsmount.h4
-rw-r--r--sys/nfs/nfsnode.h38
-rw-r--r--sys/nfs/nfsrvcache.h9
14 files changed, 130 insertions, 53 deletions
diff --git a/sys/nfs/nfs.h b/sys/nfs/nfs.h
index ad90600cb0fc..8208b05d517a 100644
--- a/sys/nfs/nfs.h
+++ b/sys/nfs/nfs.h
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* From: @(#)nfs.h 7.11 (Berkeley) 4/19/91
- * $Id: nfs.h,v 1.2 1993/09/09 22:05:59 rgrimes Exp $
+ * $Id: nfs.h,v 1.3 1993/11/07 17:50:56 wollman Exp $
*/
#ifndef __h_nfs
@@ -164,7 +164,7 @@ struct nfsstats {
};
#ifdef KERNEL
-struct nfsstats nfsstats;
+extern struct nfsstats nfsstats;
#endif /* KERNEL */
#endif /* __h_nfs */
diff --git a/sys/nfs/nfs_bio.c b/sys/nfs/nfs_bio.c
index 65d425c901f8..3a422dc184d4 100644
--- a/sys/nfs/nfs_bio.c
+++ b/sys/nfs/nfs_bio.c
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* From: @(#)nfs_bio.c 7.19 (Berkeley) 4/16/91
- * $Id: nfs_bio.c,v 1.3 1993/09/09 22:06:00 rgrimes Exp $
+ * $Id: nfs_bio.c,v 1.5 1994/02/06 22:20:09 davidg Exp $
*/
#include "param.h"
@@ -244,7 +244,7 @@ nfs_write(vp, uio, ioflag, cred)
* Maybe this should be above the vnode op call, but so long as
* file servers have no limits, i don't think it matters
*/
- if (uio->uio_offset + uio->uio_resid >
+ if (p && uio->uio_offset + uio->uio_resid >
p->p_rlimit[RLIMIT_FSIZE].rlim_cur) {
psignal(p, SIGXFSZ);
return (EFBIG);
@@ -256,7 +256,9 @@ nfs_write(vp, uio, ioflag, cred)
*/
biosize = VFSTONFS(vp->v_mount)->nm_rsize;
np->n_flag |= NMODIFIED;
- vnode_pager_uncache(vp);
+ if ((ioflag & IO_PAGER) == 0)
+ vnode_pager_uncache(vp);
+
do {
nfsstats.biocache_writes++;
lbn = uio->uio_offset / biosize;
diff --git a/sys/nfs/nfs_node.c b/sys/nfs/nfs_node.c
index c512c4b8ab4b..9da51d840b4f 100644
--- a/sys/nfs/nfs_node.c
+++ b/sys/nfs/nfs_node.c
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* From: @(#)nfs_node.c 7.34 (Berkeley) 5/15/91
- * $Id: nfs_node.c,v 1.2 1993/09/09 22:06:02 rgrimes Exp $
+ * $Id: nfs_node.c,v 1.4 1994/01/31 23:40:48 martin Exp $
*/
#include "param.h"
@@ -162,6 +162,7 @@ loop:
np->n_sillyrename = (struct sillyrename *)0;
np->n_size = 0;
np->n_mtime = 0;
+ np->n_lockf = 0;
*npp = np;
return (0);
}
@@ -249,6 +250,7 @@ nfs_reclaim(vp)
* for doing it just in case it is needed.
*/
int donfslocking = 0;
+
/*
* Lock an nfsnode
*/
@@ -259,7 +261,7 @@ nfs_lock(vp)
register struct nfsnode *np = VTONFS(vp);
if (!donfslocking)
- return;
+ return 0;
while (np->n_flag & NLOCKED) {
np->n_flag |= NWANT;
if (np->n_lockholder == curproc->p_pid)
diff --git a/sys/nfs/nfs_serv.c b/sys/nfs/nfs_serv.c
index 2c80798e0b84..6205a268448e 100644
--- a/sys/nfs/nfs_serv.c
+++ b/sys/nfs/nfs_serv.c
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* From: @(#)nfs_serv.c 7.40 (Berkeley) 5/15/91
- * $Id: nfs_serv.c,v 1.3 1993/09/09 22:06:03 rgrimes Exp $
+ * $Id: nfs_serv.c,v 1.5 1993/12/19 00:54:12 wollman Exp $
*/
/*
@@ -72,6 +72,7 @@
#include "nfs.h"
#include "xdr_subs.h"
#include "nfsm_subs.h"
+#include "nfsnode.h"
/* Defs */
#define TRUE 1
@@ -270,7 +271,7 @@ nfsrv_readlink(mrep, md, dpos, cred, xid, mrq, repstat, p)
caddr_t bpos;
int error = 0;
char *cp2;
- struct mbuf *mb, *mb2, *mp2, *mp3, *mreq;
+ struct mbuf *mb, *mb2, *mp2 = 0, *mp3 = 0, *mreq;
struct vnode *vp;
nfsv2fh_t nfh;
fhandle_t *fhp;
@@ -356,7 +357,7 @@ nfsrv_read(mrep, md, dpos, cred, xid, mrq, repstat, p)
int error = 0;
char *cp2;
struct mbuf *mb, *mb2, *mreq;
- struct mbuf *m2, *m3;
+ struct mbuf *m2 = 0, *m3;
struct vnode *vp;
nfsv2fh_t nfh;
fhandle_t *fhp;
@@ -616,7 +617,7 @@ nfsrv_create(mrep, md, dpos, cred, xid, mrq, repstat, p)
FREE(nd.ni_pnbuf, M_NAMEI);
} else if (vap->va_type == VCHR || vap->va_type == VBLK ||
vap->va_type == VFIFO) {
- if (vap->va_type == VCHR && rdev == 0xffffffff)
+ if (vap->va_type == VCHR && rdev == 0xffffffffUL)
vap->va_type = VFIFO;
if (vap->va_type == VFIFO) {
#ifndef FIFO
@@ -781,7 +782,7 @@ nfsrv_rename(mrep, md, dpos, cred, xid, mrq, repstat, p)
char *cp2;
struct mbuf *mb, *mreq;
struct nameidata fromnd, tond;
- struct vnode *fvp, *tvp, *tdvp;
+ struct vnode *fvp = 0, *tvp, *tdvp;
nfsv2fh_t fnfh, tnfh;
fhandle_t *ffhp, *tfhp;
long len, len2;
@@ -1204,7 +1205,7 @@ nfsrv_readdir(mrep, md, dpos, cred, xid, mrq, repstat, p)
struct proc *p;
{
register char *bp, *be;
- register struct mbuf *mp;
+ register struct mbuf *mp = 0;
register struct direct *dp;
register caddr_t cp;
register u_long *tl;
@@ -1216,7 +1217,7 @@ nfsrv_readdir(mrep, md, dpos, cred, xid, mrq, repstat, p)
char *cpos, *cend;
int len, nlen, rem, xfer, tsiz, i;
struct vnode *vp;
- struct mbuf *mp2, *mp3;
+ struct mbuf *mp2 = 0, *mp3;
nfsv2fh_t nfh;
fhandle_t *fhp;
struct uio io;
diff --git a/sys/nfs/nfs_socket.c b/sys/nfs/nfs_socket.c
index 9356448c0c7e..41b386d70dfc 100644
--- a/sys/nfs/nfs_socket.c
+++ b/sys/nfs/nfs_socket.c
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* From: @(#)nfs_socket.c 7.23 (Berkeley) 4/20/91
- * $Id: nfs_socket.c,v 1.3 1993/09/09 22:06:05 rgrimes Exp $
+ * $Id: nfs_socket.c,v 1.4.2.1 1994/05/03 21:04:53 rgrimes Exp $
*/
/*
@@ -479,7 +479,7 @@ tryagain:
}
if (error)
goto errout;
- len = ntohl(len) & ~0x80000000;
+ len = ntohl(len) & ~0x80000000ul;
/*
* This is SERIOUS! We are out of sync with the sender
* and forcing a disconnect/reconnect is all I can do.
@@ -810,7 +810,7 @@ nfs_request(vp, mreq, xid, procnum, procp, tryhard, mp, mrp, mdp, dposp)
*/
if ((nmp->nm_soflags & PR_ATOMIC) == 0) {
M_PREPEND(mreq, sizeof(u_long), M_WAIT);
- *mtod(mreq, u_long *) = htonl(0x80000000 | len);
+ *mtod(mreq, u_long *) = htonl(0x80000000ul | len);
}
rep->r_mreq = mreq;
@@ -971,6 +971,8 @@ nfs_getreq(so, prog, vers, maxproc, nam, mrp, mdp, dposp, retxid, procnum, cr,
}
if (error)
return (error);
+ if (!mrep)
+ return (EBADRPC);
md = mrep;
mrep = nfs_uncompress(mrep);
if (mrep != md) {
diff --git a/sys/nfs/nfs_subs.c b/sys/nfs/nfs_subs.c
index 3ee1a1b47df1..14e011882160 100644
--- a/sys/nfs/nfs_subs.c
+++ b/sys/nfs/nfs_subs.c
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* From: @(#)nfs_subs.c 7.41 (Berkeley) 5/15/91
- * $Id: nfs_subs.c,v 1.2 1993/09/09 22:06:08 rgrimes Exp $
+ * $Id: nfs_subs.c,v 1.5 1993/12/19 00:54:15 wollman Exp $
*/
/*
@@ -71,6 +71,8 @@
#define TRUE 1
#define FALSE 0
+struct nfsstats nfsstats;
+
/*
* Data items converted to xdr at startup, since they are constant
* This is kinda hokey, but may save a little time doing byte swaps
@@ -271,8 +273,8 @@ nfsm_uiotombuf(uiop, mq, siz, bpos)
caddr_t *bpos;
{
register char *uiocp;
- register struct mbuf *mp, *mp2;
- register int xfer, left, len;
+ register struct mbuf *mp = 0, *mp2;
+ register int xfer, left, len = 0;
int uiosiz, clflg, rem;
char *cp;
@@ -452,7 +454,7 @@ nfsm_strtmbuf(mb, bpos, cp, siz)
char *cp;
long siz;
{
- register struct mbuf *m1, *m2;
+ register struct mbuf *m1 = 0, *m2;
long left, xfer, len, tlen;
u_long *tl;
int putsize;
@@ -541,7 +543,7 @@ nfs_init()
* Initialize reply list and start timer
*/
nfsreqh.r_prev = nfsreqh.r_next = &nfsreqh;
- nfs_timer();
+ nfs_timer(0);
}
/*
@@ -649,7 +651,7 @@ nfs_loadattrcache(vpp, mdp, dposp, vaper)
*/
np = VTONFS(vp);
if (vp->v_type == VNON) {
- if (type == VCHR && rdev == 0xffffffff)
+ if (type == VCHR && rdev == 0xffffffffUL)
vp->v_type = type = VFIFO;
else
vp->v_type = type;
diff --git a/sys/nfs/nfs_syscalls.c b/sys/nfs/nfs_syscalls.c
index 8555978706bd..57413b9d232d 100644
--- a/sys/nfs/nfs_syscalls.c
+++ b/sys/nfs/nfs_syscalls.c
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* From: @(#)nfs_syscalls.c 7.26 (Berkeley) 4/16/91
- * $Id: nfs_syscalls.c,v 1.3 1993/09/09 22:06:09 rgrimes Exp $
+ * $Id: nfs_syscalls.c,v 1.4 1993/12/19 00:54:16 wollman Exp $
*/
#include "param.h"
@@ -288,7 +288,8 @@ nfssvc(p, uap, retval)
*/
if (!sosendallatonce(so)) {
M_PREPEND(mreq, sizeof(u_long), M_WAIT);
- *mtod(mreq, u_long *) = htonl(0x80000000 | siz);
+ *mtod(mreq, u_long *) =
+ htonl(0x80000000UL | siz);
}
error = nfs_send(so, nam, mreq, (struct nfsreq *)0);
if (nam)
diff --git a/sys/nfs/nfs_vfsops.c b/sys/nfs/nfs_vfsops.c
index 32c7f77f819e..47f7881e525d 100644
--- a/sys/nfs/nfs_vfsops.c
+++ b/sys/nfs/nfs_vfsops.c
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* From: @(#)nfs_vfsops.c 7.31 (Berkeley) 5/6/91
- * $Id: nfs_vfsops.c,v 1.2 1993/09/09 22:06:11 rgrimes Exp $
+ * $Id: nfs_vfsops.c,v 1.4 1994/01/16 20:10:01 martin Exp $
*/
#include "param.h"
@@ -50,6 +50,7 @@
#include "socket.h"
#include "socketvar.h"
#include "systm.h"
+#include "kernel.h"
#include "../net/if.h"
#include "../net/route.h"
@@ -63,6 +64,9 @@
#include "nfsm_subs.h"
#include "nfsdiskless.h"
+static int mountnfs(struct nfs_args *, struct mount *, struct mbuf *,
+ char *, char *, struct vnode **);
+
/*
* nfs vfs operations.
*/
@@ -271,9 +275,7 @@ nfs_mountroot()
mp->mnt_vnodecovered = NULLVP;
vfs_unlock(mp);
rootvp = vp;
-#ifndef __386BSD__
inittodr((time_t)0); /* There is no time in the nfs fsstat so ?? */
-#endif
return (0);
}
@@ -327,7 +329,7 @@ nfs_mount(mp, path, data, ndp, p)
/*
* Common code for mount and mountroot
*/
-int
+static int
mountnfs(argp, mp, nam, pth, hst, vpp)
register struct nfs_args *argp;
register struct mount *mp;
diff --git a/sys/nfs/nfs_vnops.c b/sys/nfs/nfs_vnops.c
index eab2ea49c3d3..b5548e751576 100644
--- a/sys/nfs/nfs_vnops.c
+++ b/sys/nfs/nfs_vnops.c
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* From: @(#)nfs_vnops.c 7.60 (Berkeley) 5/24/91
- * $Id: nfs_vnops.c,v 1.4 1993/10/25 17:56:56 davidg Exp $
+ * $Id: nfs_vnops.c,v 1.7 1994/01/31 23:40:50 martin Exp $
*/
/*
@@ -776,7 +776,7 @@ nfs_mknod(ndp, vap, cred, p)
rdev = txdr_unsigned(vap->va_rdev);
#ifdef FIFO
else if (vap->va_type == VFIFO)
- rdev = 0xffffffff;
+ rdev = 0xffffffffUL;
#endif /* FIFO */
else {
VOP_ABORTOP(ndp);
@@ -1258,11 +1258,11 @@ nfs_readdirrpc(vp, uiop, cred)
struct ucred *cred;
{
register long len;
- register struct direct *dp;
+ register struct direct *dp = 0;
register u_long *tl;
register caddr_t cp;
register long t1;
- long tlen, lastlen;
+ long tlen, lastlen = 0;
caddr_t bpos, dpos, cp2;
u_long xid;
int error = 0;
@@ -1271,8 +1271,8 @@ nfs_readdirrpc(vp, uiop, cred)
caddr_t dpos2;
int siz;
int more_dirs = 1;
- off_t off, savoff;
- struct direct *savdp;
+ off_t off, savoff = 0;
+ struct direct *savdp = 0;
struct nfsmount *nmp;
struct nfsnode *np = VTONFS(vp);
long tresid;
@@ -1743,19 +1743,15 @@ nfs_advlock(vp, id, op, fl, flags)
struct flock *fl;
int flags;
{
-#ifdef notyet
register struct nfsnode *np = VTONFS(vp);
return (lf_advlock(&(np->n_lockf), np->n_size, id, op, fl, flags));
-#else
- return (EOPNOTSUPP);
-#endif
}
/*
* Print out the contents of an nfsnode.
*/
-int
+void
nfs_print(vp)
struct vnode *vp;
{
@@ -1774,5 +1770,4 @@ nfs_print(vp)
if (np->n_lockwaiter)
printf(" waiting pid %d", np->n_lockwaiter);
printf("\n");
- return(0);
}
diff --git a/sys/nfs/nfsdiskless.h b/sys/nfs/nfsdiskless.h
index b35a8a3a0340..47b0d7b7289e 100644
--- a/sys/nfs/nfsdiskless.h
+++ b/sys/nfs/nfsdiskless.h
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* From: @(#)nfsdiskless.h 7.1 (Berkeley) 3/4/91
- * $Id: nfsdiskless.h,v 1.2 1993/09/09 22:06:18 rgrimes Exp $
+ * $Id: nfsdiskless.h,v 1.3 1994/01/16 02:26:56 martin Exp $
*/
#ifndef __h_nfsdiskless
@@ -48,17 +48,18 @@
* For now it is statically initialized in swapvmunix.c, but someday a primary
* bootstrap should fill it in.
*/
+#define NFSMNAMELEN 64
struct nfs_diskless {
struct ifaliasreq myif; /* Info. for partial ifconfig */
struct sockaddr mygateway; /* Default gateway for "route add" */
struct nfs_args swap_args; /* Mount args for swap file */
u_char swap_fh[NFS_FHSIZE]; /* Swap file's file handle */
struct sockaddr swap_saddr; /* Address of swap server */
- char *swap_hostnam; /* Host name for mount pt */
+ char swap_hostnam[NFSMNAMELEN]; /* Host name for mount pt */
struct nfs_args root_args; /* Mount args for root fs */
u_char root_fh[NFS_FHSIZE]; /* File handle of root dir */
struct sockaddr root_saddr; /* Address of root server */
- char *root_hostnam; /* Host name for mount pt */
+ char root_hostnam[NFSMNAMELEN]; /* Host name for mount pt */
};
#endif /* __h_nfsdiskless */
diff --git a/sys/nfs/nfsm_subs.h b/sys/nfs/nfsm_subs.h
index e8091189c805..2b8e6a1f1f04 100644
--- a/sys/nfs/nfsm_subs.h
+++ b/sys/nfs/nfsm_subs.h
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* From: @(#)nfsm_subs.h 7.11 (Berkeley) 4/16/91
- * $Id: nfsm_subs.h,v 1.2 1993/09/09 22:06:21 rgrimes Exp $
+ * $Id: nfsm_subs.h,v 1.3 1993/12/19 00:54:20 wollman Exp $
*/
#ifndef __h_nfsm_subs
@@ -291,7 +291,7 @@ extern struct mbuf *nfsm_reqh();
fp->fa_size = txdr_unsigned(vap->va_size); \
fp->fa_blocksize = txdr_unsigned(vap->va_blocksize); \
if (vap->va_type == VFIFO) \
- fp->fa_rdev = 0xffffffff; \
+ fp->fa_rdev = 0xffffffffUL; \
else \
fp->fa_rdev = txdr_unsigned(vap->va_rdev); \
fp->fa_blocks = txdr_unsigned(vap->va_bytes / NFS_FABLKSIZE); \
@@ -303,8 +303,7 @@ extern struct mbuf *nfsm_reqh();
fp->fa_ctime.tv_sec = txdr_unsigned(vap->va_ctime.tv_sec); \
fp->fa_ctime.tv_usec = txdr_unsigned(vap->va_gen)
-/* These are here to provide prototypes for everything in the NFS system.
- * Added 8.6.-93, Garrett A. Wollman, University of Vermont. */
+#ifdef KERNEL
struct nfsmount;
void nfs_updatetimer __P((struct nfsmount *));
@@ -316,5 +315,34 @@ void nfs_sounlock __P((int *));
int nfs_netaddr_match __P((struct mbuf *, struct mbuf *));
int nfs_badnam __P((struct mbuf *, struct mbuf *, struct mbuf *));
+extern int nfs_rephead(int, u_long, int, struct mbuf **, struct mbuf **,
+ caddr_t *);
+extern struct mbuf *nfsm_reqh(u_long, u_long, u_long, struct ucred *, int,
+ caddr_t *, struct mbuf **, u_long *);
+extern int nfsm_mbuftouio(struct mbuf **, struct uio *, int, caddr_t *);
+extern int nfsm_uiotombuf(struct uio *, struct mbuf **, int, caddr_t *);
+extern int nfsm_disct(struct mbuf **, caddr_t *, int, int, int, caddr_t *);
+extern int nfs_adv(struct mbuf **, caddr_t *, int, int);
+extern int nfsm_strtmbuf(struct mbuf **, char **, char *, long);
+extern void nfs_init(void);
+extern void nfsm_adj(struct mbuf *, int, int);
+extern struct mbuf *nfs_compress(struct mbuf *);
+extern struct mbuf *nfs_uncompress(struct mbuf *);
+extern int nfs_request(struct vnode *, struct mbuf *, u_long, int,
+ struct proc *, int, struct mount *, struct mbuf **,
+ struct mbuf **, caddr_t *);
+struct nfsreq;
+extern int nfs_receive(struct socket *, struct mbuf **, struct mbuf **,
+ struct nfsreq *);
+extern int nfs_send(struct socket *, struct mbuf *, struct mbuf *,
+ struct nfsreq *);
+extern int nfs_getreq(struct socket *so, u_long, u_long, int, struct mbuf **,
+ struct mbuf **, struct mbuf **, caddr_t *, u_long *,
+ u_long *, struct ucred *, struct mbuf *, struct mbuf *,
+ int *, int *);
+extern int nfs_netaddr_match(struct mbuf *, struct mbuf *);
+extern int nfs_badnam(struct mbuf *, struct mbuf *, struct mbuf *);
+
+#endif /* KERNEL */
#endif /* __h_nfsm_subs */
diff --git a/sys/nfs/nfsmount.h b/sys/nfs/nfsmount.h
index 823546001cc8..a07195b998c3 100644
--- a/sys/nfs/nfsmount.h
+++ b/sys/nfs/nfsmount.h
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* From: @(#)nfsmount.h 7.7 (Berkeley) 4/16/91
- * $Id: nfsmount.h,v 1.2 1993/09/09 22:06:23 rgrimes Exp $
+ * $Id: nfsmount.h,v 1.3 1993/11/25 01:36:58 wollman Exp $
*/
#ifndef __h_nfsmount
@@ -118,6 +118,6 @@ int nfs_fhtovp __P((
int nfs_vptofh __P((
struct vnode *vp,
struct fid *fhp));
-int nfs_init __P(());
+void nfs_init __P(());
#endif /* __h_nfsmount */
diff --git a/sys/nfs/nfsnode.h b/sys/nfs/nfsnode.h
index ea30f93682c5..c1ea299f28d6 100644
--- a/sys/nfs/nfsnode.h
+++ b/sys/nfs/nfsnode.h
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* From: @(#)nfsnode.h 7.12 (Berkeley) 4/16/91
- * $Id: nfsnode.h,v 1.3 1993/10/20 07:31:16 davidg Exp $
+ * $Id: nfsnode.h,v 1.6 1993/12/19 00:54:22 wollman Exp $
*/
#ifndef __h_nfsnode
@@ -87,6 +87,7 @@ struct nfsnode {
/*
* Prototypes for NFS vnode operations
*/
+#ifdef KERNEL
int nfs_lookup __P((
struct vnode *vp,
struct nameidata *ndp,
@@ -214,7 +215,7 @@ int nfs_bmap __P((
daddr_t *bnp));
int nfs_strategy __P((
struct buf *bp));
-int nfs_print __P((
+void nfs_print __P((
struct vnode *vp));
int nfs_islocked __P((
struct vnode *vp));
@@ -226,4 +227,37 @@ int nfs_advlock __P((
int flags));
void nfs_nput __P((struct vnode *));
+
+extern int nfs_dogetattr(struct vnode *, struct vattr *, struct ucred *, int,
+ struct proc *);
+extern int nfsrv_fhtovp(fhandle_t *, int, struct vnode **, struct ucred *);
+struct mbuf;
+extern int nfs_loadattrcache(struct vnode **, struct mbuf **, caddr_t *,
+ struct vattr *);
+extern int nfs_getattrcache(struct vnode *, struct vattr *);
+extern int nfs_namei(struct nameidata *, fhandle_t *, int, struct mbuf **,
+ caddr_t *, struct proc *);
+
+extern int nfsrv_access(struct vnode *, int, struct ucred *, struct proc *);
+extern union nhead *nfs_hash(nfsv2fh_t *);
+extern int nfs_nget(struct mount *, nfsv2fh_t *, struct nfsnode **);
+
+struct nfsreq; struct nfsmount;
+extern int nfs_reply(struct nfsmount *, struct nfsreq *);
+extern void nfs_timer(caddr_t);
+extern void nfs_updatetimer(struct nfsmount *);
+extern void nfs_backofftimer(struct nfsmount *);
+extern int nfs_connect(struct nfsmount *);
+extern int nfs_reconnect(struct nfsreq *, struct nfsmount *);
+extern void nfs_disconnect(struct nfsmount *);
+extern int nfs_sigintr(struct proc *);
+extern void nfs_msg(struct proc *, const char *, const char *);
+extern void nfs_solock(int *);
+extern void nfs_sounlock(int *);
+
+/* From nfs_bio.c: */
+extern int nfs_bioread(struct vnode *, struct uio *, int, struct ucred *);
+extern int nfs_write(struct vnode *, struct uio *, int, struct ucred *);
+
+#endif /* KERNEL */
#endif /* __h_nfsnode */
diff --git a/sys/nfs/nfsrvcache.h b/sys/nfs/nfsrvcache.h
index 110878bc6f29..f75d8f62a7f9 100644
--- a/sys/nfs/nfsrvcache.h
+++ b/sys/nfs/nfsrvcache.h
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* From: @(#)nfsrvcache.h 7.3 (Berkeley) 6/28/90
- * $Id: nfsrvcache.h,v 1.2 1993/09/09 22:06:26 rgrimes Exp $
+ * $Id: nfsrvcache.h,v 1.3 1993/12/19 00:54:23 wollman Exp $
*/
#ifndef __h_nfsrvcache
@@ -95,5 +95,12 @@ struct nfsrvcache {
/* Delay time after completion that request is dropped */
#define RC_DELAY 2 /* seconds */
+#ifdef KERNEL
+extern void nfsrv_initcache(void);
+extern int nfsrv_getcache(struct mbuf *, u_long, int, struct mbuf **);
+extern void nfsrv_updatecache(struct mbuf *, u_long, int, int, int,
+ struct mbuf *);
+
+#endif /* KERNEL */
#endif /* __h_nfsrvcache */