nfs_nfsiod.c (25664) | nfs_nfsiod.c (25781) |
---|---|
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 | 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.22 1997/04/30 09:51:37 dfr Exp $ | 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)); | 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); |
|
427 TAILQ_INIT(&slp->ns_uidlruhead); 428 TAILQ_INSERT_TAIL(&nfssvc_sockhead, slp, ns_chain); 429 } 430 slp->ns_so = so; 431 slp->ns_nam = mynam; 432 fp->f_count++; 433 slp->ns_fp = fp; 434 s = splnet(); --- 403 unchanged lines hidden (view full) --- 838nfsrv_zapsock(slp) 839 register struct nfssvc_sock *slp; 840{ 841 register struct nfsuid *nuidp, *nnuidp; 842 register struct nfsrv_descript *nwp, *nnwp; 843 struct socket *so; 844 struct file *fp; 845 struct mbuf *m; | 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; |
|
846 int s; 847 848 slp->ns_flag &= ~SLP_ALLFLAGS; 849 fp = slp->ns_fp; 850 if (fp) { 851 slp->ns_fp = (struct file *)0; 852 so = slp->ns_so; 853 so->so_upcall = NULL; 854 soshutdown(so, 2); 855 closef(fp, (struct proc *)0); 856 if (slp->ns_nam) 857 MFREE(slp->ns_nam, m); 858 m_freem(slp->ns_raw); | 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); |
859 m_freem(slp->ns_rec); | 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 } |
860 for (nuidp = slp->ns_uidlruhead.tqh_first; nuidp != 0; 861 nuidp = nnuidp) { 862 nnuidp = nuidp->nu_lru.tqe_next; 863 LIST_REMOVE(nuidp, nu_hash); 864 TAILQ_REMOVE(&slp->ns_uidlruhead, nuidp, nu_lru); 865 if (nuidp->nu_flag & NU_NAM) 866 m_freem(nuidp->nu_nam); 867 free((caddr_t)nuidp, M_NFSUID); --- 262 unchanged lines hidden (view full) --- 1130 } 1131 1132 TAILQ_INIT(&nfsd_head); 1133 nfsd_head_flag &= ~NFSD_CHECKSLP; 1134 1135 nfs_udpsock = (struct nfssvc_sock *) 1136 malloc(sizeof (struct nfssvc_sock), M_NFSSVC, M_WAITOK); 1137 bzero((caddr_t)nfs_udpsock, sizeof (struct nfssvc_sock)); | 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); |
|
1138 TAILQ_INIT(&nfs_udpsock->ns_uidlruhead); 1139 TAILQ_INSERT_HEAD(&nfssvc_sockhead, nfs_udpsock, ns_chain); 1140 1141 nfs_cltpsock = (struct nfssvc_sock *) 1142 malloc(sizeof (struct nfssvc_sock), M_NFSSVC, M_WAITOK); 1143 bzero((caddr_t)nfs_cltpsock, sizeof (struct nfssvc_sock)); | 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); |
|
1144 TAILQ_INIT(&nfs_cltpsock->ns_uidlruhead); 1145 TAILQ_INSERT_TAIL(&nfssvc_sockhead, nfs_cltpsock, ns_chain); 1146} 1147 1148/* 1149 * Add entries to the server monitor log. 1150 */ 1151static void --- 31 unchanged lines hidden --- | 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 --- |