else tsiz -= len;
nfs_readrpc(vp, uiop, cred)	register struct vnode *vp;	struct uio *uiop;	struct ucred *cred;{	register u_int32_t *tl;	register caddr_t cp;	register int32_t t1;	caddr_t bpos, dpos, cp2;	int error = 0;	struct mbuf *mreq, *mrep, *md, *mb, *mb2;	struct nfsmount *nmp;	long len, retlen, tsiz;	nmp = VFSTONFS(vp->v_mount);	tsiz = uiop->uio_resid;	if (uiop->uio_offset + tsiz > 0xffffffff &&	    (nmp->nm_flag & NFSMNT_NQNFS) == 0)		return (EFBIG);	while (tsiz > 0) {		nfsstats.rpccnt[NFSPROC_READ]++;		len = (tsiz > nmp->nm_rsize) ? nmp->nm_rsize : tsiz;		nfsm_reqhead(vp, NFSPROC_READ, NFSX_FH+NFSX_UNSIGNED*3);		nfsm_fhtom(vp);		nfsm_build(tl, u_int32_t *, NFSX_UNSIGNED*3);		if (nmp->nm_flag & NFSMNT_NQNFS) {			txdr_hyper(&uiop->uio_offset, tl);			*(tl + 2) = txdr_unsigned(len);		} else {			*tl++ = txdr_unsigned(uiop->uio_offset);			*tl++ = txdr_unsigned(len);			*tl = 0;		}		nfsm_request(vp, NFSPROC_READ, uiop->uio_procp, cred);		nfsm_loadattr(vp, (struct vattr *)0);		nfsm_strsiz(retlen, nmp->nm_rsize);		nfsm_mtouio(uiop, retlen);		m_freem(mrep);		if (retlen < len)			tsiz = 0;		else			tsiz -= len;	}nfsmout:	return (error);}