* Free "count" units of I/O from an mbuf chain. They could be held * in M_EXTPG or just as a normal mbuf. This code is intended to be * called in an error path (I/O error, closed connection, etc). */
| 832 | * called in an error path (I/O error, closed connection, etc). |
| 833 | */ |
| 834 | void |
| 835 | mb_free_notready(struct mbuf *m, int count) |
| 836 | { |
| 837 | int i; |
| 838 | |
| 839 | for (i = 0; i < count && m != NULL; i++) { |
| 840 | if ((m->m_flags & M_EXTPG) != 0) { |
| 841 | m->m_epg_nrdy--; |
| 842 | if (m->m_epg_nrdy != 0) |
| 843 | continue; |
| 844 | } |
| 845 | m = m_free(m); |
| 846 | } |
| 847 | KASSERT(i == count, ("Removed only %d items from %p", i, m)); |
| 848 | } |
| 849 | |
| 850 | /* |
| 851 | * Compress an unmapped mbuf into a simple mbuf when it holds a small |
no test coverage detected