Source-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: src/sys/nfs



The changes to sys/nfs break when NFSSERVER is not defined, due to
the nfs server pool not existing and thus the cred allocations failing
to link in nqnfs_callback. The "easy" patch is to always alloc and
init nfs_srvdesc_pool, but I'm not positive this is TRT. yamt, could
you please comment? (building INSTALL_TINY is possibly the lowest-
effort way to see if things work when NFSSERVER ain't defined.)

The simple-minded patch to always init nfs_srvdesc_pool is below.

Index: nfs_socket.c
===================================================================
RCS file: /cvsroot/src/sys/nfs/nfs_socket.c,v
retrieving revision 1.131
diff -u -w -p -r1.131 nfs_socket.c
--- nfs_socket.c        18 May 2006 12:44:45 -0000      1.131
+++ nfs_socket.c        19 May 2006 02:54:36 -0000
@@ -2573,7 +2573,9 @@ nfsrv_dorec(slp, nfsd, ndp)
        nfsd->nfsd_nd = nd;
        return (0);
 }
+#endif /* NFSSERVER */
 
+#ifndef NFS_v2_ONLY
 struct nfsrv_descript *
 nfsdreq_alloc(void)
 {
@@ -2596,7 +2598,9 @@ nfsdreq_free(struct nfsrv_descript *nd)
        }
        pool_put(&nfs_srvdesc_pool, nd);
 }
+#endif
 
+#ifdef NFSSERVER
 /*
  * Search for a sleeping nfsd and wake it up.
  * SIDE EFFECT: If none found, set NFSD_CHECKSLP flag, so that one of the
Index: nfs_subs.c
===================================================================
RCS file: /cvsroot/src/sys/nfs/nfs_subs.c,v
retrieving revision 1.163
diff -u -w -p -r1.163 nfs_subs.c
--- nfs_subs.c  18 May 2006 12:44:45 -0000      1.163
+++ nfs_subs.c  19 May 2006 02:54:36 -0000
@@ -1562,14 +1562,14 @@ nfs_init0(void)
 #ifdef NFSSERVER
        nfsrv_init(0);                  /* Init server data structures */
        nfsrv_initcache();              /* Init the server request cache */
-       pool_init(&nfs_srvdesc_pool, sizeof(struct nfsrv_descript),
-           0, 0, 0, "nfsrvdescpl", &pool_allocator_nointr);
 #endif /* NFSSERVER */
 
 #if defined(NFSSERVER) || !defined(NFS_V2_ONLY)
        /*
         * Initialize the nqnfs data structures.
         */
+       pool_init(&nfs_srvdesc_pool, sizeof(struct nfsrv_descript),
+           0, 0, 0, "nfsrvdescpl", &pool_allocator_nointr);
        if (nqnfsstarttime == 0) {
                nqnfsstarttime = boottime.tv_sec + nqsrv_maxlease
                        + nqsrv_clockskew + nqsrv_writeslack;
@@ -1578,6 +1578,7 @@ nfs_init0(void)
                nqfhhashtbl = hashinit(NQLCHSZ, HASH_LIST, M_NQLEASE,
                    M_WAITOK, &nqfhhash);
        }
+
 #endif
 
        exithook_establish(nfs_exit, NULL);
Index: nfs_syscalls.c
===================================================================
RCS file: /cvsroot/src/sys/nfs/nfs_syscalls.c,v
retrieving revision 1.93
diff -u -w -p -r1.93 nfs_syscalls.c
--- nfs_syscalls.c      18 May 2006 12:44:45 -0000      1.93
+++ nfs_syscalls.c      19 May 2006 02:54:36 -0000
@@ -382,10 +382,11 @@ sys_nfssvc(l, v, retval)
        return (error);
 }
 
+struct pool nfs_srvdesc_pool;
+
 #ifdef NFSSERVER
 MALLOC_DEFINE(M_NFSD, "NFS daemon", "Nfs server daemon structure");
 MALLOC_DEFINE(M_NFSSVC, "NFS srvsock", "Nfs server structure");
-struct pool nfs_srvdesc_pool;
 
 static struct nfssvc_sock *
 nfsrv_sockalloc()




Home | Main Index | Thread Index | Old Index