while ((m = m->m_next) != NULL)
for (m = m->m_next;m;m = m->m_next)
nfsm_adj(mp, len, nul)	struct mbuf *mp;	register int len;	int nul;{	register struct mbuf *m;	register int count, i;	register char *cp;	/*	 * Trim from tail.  Scan the mbuf chain,	 * calculating its length and finding the last mbuf.	 * If the adjustment only affects this mbuf, then just	 * adjust and return.  Otherwise, rescan and truncate	 * after the remaining size.	 */	count = 0;	m = mp;	for (;;) {		count += m->m_len;		if (m->m_next == (struct mbuf *)0)			break;		m = m->m_next;	}	if (m->m_len > len) {		m->m_len -= len;		if (nul > 0) {			cp = mtod(m, caddr_t)+m->m_len-nul;			for (i = 0; i < nul; i++)				*cp++ = '\0';		}		return;	}	count -= len;	if (count < 0)		count = 0;	/*	 * Correct length for chain is "count".	 * Find the mbuf with last data, adjust its length,	 * and toss data from remaining mbufs on chain.	 */	for (m = mp; m; m = m->m_next) {		if (m->m_len >= count) {			m->m_len = count;			if (nul > 0) {				cp = mtod(m, caddr_t)+m->m_len-nul;				for (i = 0; i < nul; i++)					*cp++ = '\0';			}			break;		}		count -= m->m_len;	}	while ((m = m->m_next) != NULL)		m->m_len = 0;}