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_serv.c 8.3 (Berkeley) 1/12/94 |
37 * $Id: nfs_serv.c,v 1.58 1998/02/09 06:10:35 eivind Exp $ |
38 */ 39 40/* 41 * nfs version 2 and 3 server calls to vnode ops 42 * - these routines generally have 3 phases 43 * 1 - break down and validate rpc request in mbuf list 44 * 2 - do the vnode ops for the request 45 * (surprisingly ?? many are very similar to syscalls in vfs_syscalls.c) --- 928 unchanged lines hidden (view full) --- 974 mrep = nfsd->nd_mrep; 975 md = nfsd->nd_md; 976 dpos = nfsd->nd_dpos; 977 cred = &nfsd->nd_cr; 978 v3 = (nfsd->nd_flag & ND_NFSV3); 979 LIST_INIT(&nfsd->nd_coalesce); 980 nfsd->nd_mreq = NULL; 981 nfsd->nd_stable = NFSV3WRITE_FILESYNC; |
982 cur_usec = nfs_curusec(); |
983 nfsd->nd_time = cur_usec + 984 (v3 ? nfsrvw_procrastinate_v3 : nfsrvw_procrastinate); 985 986 /* 987 * Now, get the write header.. 988 */ 989 nfsm_srvmtofh(&nfsd->nd_fh); 990 if (v3) { --- 99 unchanged lines hidden (view full) --- 1090 splx(s); 1091 } 1092 1093 /* 1094 * Now, do VOP_WRITE()s for any one(s) that need to be done now 1095 * and generate the associated reply mbuf list(s). 1096 */ 1097loop1: |
1098 cur_usec = nfs_curusec(); |
1099 s = splsoftclock(); 1100 for (nfsd = slp->ns_tq.lh_first; nfsd; nfsd = owp) { 1101 owp = nfsd->nd_tq.le_next; 1102 if (nfsd->nd_time > cur_usec) 1103 break; 1104 if (nfsd->nd_mreq) 1105 continue; 1106 NFS_DPF(WG, ("P%03x", nfsd->nd_retxid & 0xfff)); --- 2356 unchanged lines hidden --- |