diff options
author | tjr <tjr@FreeBSD.org> | 2003-02-19 10:12:42 +0000 |
---|---|---|
committer | tjr <tjr@FreeBSD.org> | 2003-02-19 10:12:42 +0000 |
commit | 95727dd51398bedc5747291880655c9ad52616b3 (patch) | |
tree | b78484d356e0e685895d4605a317756bca404233 /sys/kern/subr_mchain.c | |
parent | dfa9741d3bc1093c4d054b05f18b9072db2ffdb8 (diff) | |
download | FreeBSD-src-95727dd51398bedc5747291880655c9ad52616b3.zip FreeBSD-src-95727dd51398bedc5747291880655c9ad52616b3.tar.gz |
The "m = m->m_next" that was removed in the revision 1.12 was necessary
for the m->m_next != NULL case to avoid looping infinitely when the first
mbuf in the chain becomes full.
Diffstat (limited to 'sys/kern/subr_mchain.c')
-rw-r--r-- | sys/kern/subr_mchain.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/kern/subr_mchain.c b/sys/kern/subr_mchain.c index ed231ba..c998a23 100644 --- a/sys/kern/subr_mchain.c +++ b/sys/kern/subr_mchain.c @@ -195,7 +195,8 @@ mb_put_mem(struct mbchain *mbp, c_caddr_t source, int size, int type) m = m_getm(m, size, M_TRYWAIT, MT_DATA); if (m == NULL) return ENOBUFS; - } + } else + m = m->m_next; mleft = M_TRAILINGSPACE(m); continue; } |