Deleted Added
sdiff udiff text old ( 25664 ) new ( 25781 )
full compact
1/*
2 * Copyright (c) 1989, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * This code is derived from software contributed to Berkeley by
6 * Rick Macklem at The University of Guelph.
7 *
8 * Redistribution and use in source and binary forms, with or without

--- 20 unchanged lines hidden (view full) ---

29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
34 * SUCH DAMAGE.
35 *
36 * @(#)nfs_syscalls.c 8.5 (Berkeley) 3/30/95
37 * $Id: nfs_syscalls.c,v 1.23 1997/05/10 16:59:36 dfr Exp $
38 */
39
40#include <sys/param.h>
41#include <sys/systm.h>
42#include <sys/sysproto.h>
43#include <sys/kernel.h>
44#include <sys/sysctl.h>
45#include <sys/file.h>

--- 373 unchanged lines hidden (view full) ---

419 so->so_snd.sb_flags &= ~SB_NOINTR;
420 so->so_snd.sb_timeo = 0;
421 if (tslp)
422 slp = tslp;
423 else {
424 slp = (struct nfssvc_sock *)
425 malloc(sizeof (struct nfssvc_sock), M_NFSSVC, M_WAITOK);
426 bzero((caddr_t)slp, sizeof (struct nfssvc_sock));
427 STAILQ_INIT(&slp->ns_rec);
428 TAILQ_INIT(&slp->ns_uidlruhead);
429 TAILQ_INSERT_TAIL(&nfssvc_sockhead, slp, ns_chain);
430 }
431 slp->ns_so = so;
432 slp->ns_nam = mynam;
433 fp->f_count++;
434 slp->ns_fp = fp;
435 s = splnet();

--- 403 unchanged lines hidden (view full) ---

839nfsrv_zapsock(slp)
840 register struct nfssvc_sock *slp;
841{
842 register struct nfsuid *nuidp, *nnuidp;
843 register struct nfsrv_descript *nwp, *nnwp;
844 struct socket *so;
845 struct file *fp;
846 struct mbuf *m;
847 struct nfsrv_rec *rec;
848 int s;
849
850 slp->ns_flag &= ~SLP_ALLFLAGS;
851 fp = slp->ns_fp;
852 if (fp) {
853 slp->ns_fp = (struct file *)0;
854 so = slp->ns_so;
855 so->so_upcall = NULL;
856 soshutdown(so, 2);
857 closef(fp, (struct proc *)0);
858 if (slp->ns_nam)
859 MFREE(slp->ns_nam, m);
860 m_freem(slp->ns_raw);
861 while (rec = STAILQ_FIRST(&slp->ns_rec)) {
862 STAILQ_REMOVE_HEAD(&slp->ns_rec, nr_link);
863 if (rec->nr_address)
864 m_freem(rec->nr_address);
865 m_freem(rec->nr_packet);
866 free(rec, M_NFSRVDESC);
867 }
868 for (nuidp = slp->ns_uidlruhead.tqh_first; nuidp != 0;
869 nuidp = nnuidp) {
870 nnuidp = nuidp->nu_lru.tqe_next;
871 LIST_REMOVE(nuidp, nu_hash);
872 TAILQ_REMOVE(&slp->ns_uidlruhead, nuidp, nu_lru);
873 if (nuidp->nu_flag & NU_NAM)
874 m_freem(nuidp->nu_nam);
875 free((caddr_t)nuidp, M_NFSUID);

--- 262 unchanged lines hidden (view full) ---

1138 }
1139
1140 TAILQ_INIT(&nfsd_head);
1141 nfsd_head_flag &= ~NFSD_CHECKSLP;
1142
1143 nfs_udpsock = (struct nfssvc_sock *)
1144 malloc(sizeof (struct nfssvc_sock), M_NFSSVC, M_WAITOK);
1145 bzero((caddr_t)nfs_udpsock, sizeof (struct nfssvc_sock));
1146 STAILQ_INIT(&nfs_udpsock->ns_rec);
1147 TAILQ_INIT(&nfs_udpsock->ns_uidlruhead);
1148 TAILQ_INSERT_HEAD(&nfssvc_sockhead, nfs_udpsock, ns_chain);
1149
1150 nfs_cltpsock = (struct nfssvc_sock *)
1151 malloc(sizeof (struct nfssvc_sock), M_NFSSVC, M_WAITOK);
1152 bzero((caddr_t)nfs_cltpsock, sizeof (struct nfssvc_sock));
1153 STAILQ_INIT(&nfs_cltpsock->ns_rec);
1154 TAILQ_INIT(&nfs_cltpsock->ns_uidlruhead);
1155 TAILQ_INSERT_TAIL(&nfssvc_sockhead, nfs_cltpsock, ns_chain);
1156}
1157
1158/*
1159 * Add entries to the server monitor log.
1160 */
1161static void

--- 31 unchanged lines hidden ---