projects
/
unix-history
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
tags
|
clone url
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
This commit was manufactured by cvs2svn to create tag 'FreeBSD-release/1.0'.
[unix-history]
/
sys
/
nfs
/
nfs_srvcache.c
diff --git
a/sys/nfs/nfs_srvcache.c
b/sys/nfs/nfs_srvcache.c
index
b274b17
..
802ca50
100644
(file)
--- a/
sys/nfs/nfs_srvcache.c
+++ b/
sys/nfs/nfs_srvcache.c
@@
-33,7
+33,8
@@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * @(#)nfs_srvcache.c 7.11 (Berkeley) 4/16/91
+ * From: @(#)nfs_srvcache.c 7.11 (Berkeley) 4/16/91
+ * $Id$
*/
/*
*/
/*
@@
-71,7
+72,8
@@
union rhead {
} rhead[NFSRCHSZ];
static struct nfsrvcache nfsrvcachehead;
} rhead[NFSRCHSZ];
static struct nfsrvcache nfsrvcachehead;
-static struct nfsrvcache nfsrvcache[NFSRVCACHESIZ];
+/* static struct nfsrvcache nfsrvcache[NFSRVCACHESIZ]; */
+static struct nfsrvcache *nfsrvcache;
#define TRUE 1
#define FALSE 0
#define TRUE 1
#define FALSE 0
@@
-125,13
+127,18
@@
static int repliesstatus[NFS_NPROCS] = {
/*
* Initialize the server request cache list
*/
/*
* Initialize the server request cache list
*/
+void
nfsrv_initcache()
{
register int i;
nfsrv_initcache()
{
register int i;
- register struct nfsrvcache *rp
= nfsrvcache
;
+ register struct nfsrvcache *rp;
register struct nfsrvcache *hp = &nfsrvcachehead;
register union rhead *rh = rhead;
register struct nfsrvcache *hp = &nfsrvcachehead;
register union rhead *rh = rhead;
+ MALLOC(nfsrvcache, struct nfsrvcache *,
+ NFSRVCACHESIZ * sizeof *nfsrvcache, M_CACHE, M_WAITOK);
+ rp = nfsrvcache;
+
for (i = NFSRCHSZ; --i >= 0; rh++) {
rh->rh_head[0] = rh;
rh->rh_head[1] = rh;
for (i = NFSRCHSZ; --i >= 0; rh++) {
rh->rh_head[0] = rh;
rh->rh_head[1] = rh;
@@
-164,6
+171,7
@@
nfsrv_initcache()
* return DOIT
* Update/add new request at end of lru list
*/
* return DOIT
* Update/add new request at end of lru list
*/
+int
nfsrv_getcache(nam, xid, proc, repp)
struct mbuf *nam;
u_long xid;
nfsrv_getcache(nam, xid, proc, repp)
struct mbuf *nam;
u_long xid;
@@
-176,6
+184,8
@@
nfsrv_getcache(nam, xid, proc, repp)
caddr_t bpos;
int ret;
caddr_t bpos;
int ret;
+ if(!nfsrvcache) nfsrv_initcache();
+
rh = &rhead[NFSRCHASH(xid)];
loop:
for (rp = rh->rh_chain[0]; rp != (struct nfsrvcache *)rh; rp = rp->rc_forw) {
rh = &rhead[NFSRCHASH(xid)];
loop:
for (rp = rh->rh_chain[0]; rp != (struct nfsrvcache *)rh; rp = rp->rc_forw) {
@@
-245,6
+255,7
@@
loop:
/*
* Update a request cache entry after the rpc has been done
*/
/*
* Update a request cache entry after the rpc has been done
*/
+void
nfsrv_updatecache(nam, xid, proc, repvalid, repstat, repmbuf)
struct mbuf *nam;
u_long xid;
nfsrv_updatecache(nam, xid, proc, repvalid, repstat, repmbuf)
struct mbuf *nam;
u_long xid;
@@
-256,6
+267,8
@@
nfsrv_updatecache(nam, xid, proc, repvalid, repstat, repmbuf)
register struct nfsrvcache *rp;
register union rhead *rh;
register struct nfsrvcache *rp;
register union rhead *rh;
+ if(!nfsrvcache) nfsrv_initcache();
+
rh = &rhead[NFSRCHASH(xid)];
loop:
for (rp = rh->rh_chain[0]; rp != (struct nfsrvcache *)rh; rp = rp->rc_forw) {
rh = &rhead[NFSRCHASH(xid)];
loop:
for (rp = rh->rh_chain[0]; rp != (struct nfsrvcache *)rh; rp = rp->rc_forw) {