diff options
| author | svn2git <svn2git@FreeBSD.org> | 1994-05-01 08:00:00 +0000 |
|---|---|---|
| committer | svn2git <svn2git@FreeBSD.org> | 1994-05-01 08:00:00 +0000 |
| commit | a16f65c7d117419bd266c28a1901ef129a337569 (patch) | |
| tree | 2626602f66dc3551e7a7c7bc9ad763c3bc7ab40a /sys/nfs | |
| parent | 8503f4f13f77abf7adc8f7e329c6f9c1d52b6a20 (diff) | |
Diffstat (limited to 'sys/nfs')
| -rw-r--r-- | sys/nfs/nfs.h | 4 | ||||
| -rw-r--r-- | sys/nfs/nfs_bio.c | 8 | ||||
| -rw-r--r-- | sys/nfs/nfs_node.c | 6 | ||||
| -rw-r--r-- | sys/nfs/nfs_serv.c | 15 | ||||
| -rw-r--r-- | sys/nfs/nfs_socket.c | 8 | ||||
| -rw-r--r-- | sys/nfs/nfs_subs.c | 14 | ||||
| -rw-r--r-- | sys/nfs/nfs_syscalls.c | 5 | ||||
| -rw-r--r-- | sys/nfs/nfs_vfsops.c | 10 | ||||
| -rw-r--r-- | sys/nfs/nfs_vnops.c | 19 | ||||
| -rw-r--r-- | sys/nfs/nfsdiskless.h | 7 | ||||
| -rw-r--r-- | sys/nfs/nfsm_subs.h | 36 | ||||
| -rw-r--r-- | sys/nfs/nfsmount.h | 4 | ||||
| -rw-r--r-- | sys/nfs/nfsnode.h | 38 | ||||
| -rw-r--r-- | sys/nfs/nfsrvcache.h | 9 |
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 */ |
