| 294 | } |
| 295 | |
| 296 | void |
| 297 | inm_release_deferred(struct in_multi *inm) |
| 298 | { |
| 299 | struct in_multi_head tmp; |
| 300 | |
| 301 | IN_MULTI_LIST_LOCK_ASSERT(); |
| 302 | MPASS(inm->inm_refcount > 0); |
| 303 | if (--inm->inm_refcount == 0) { |
| 304 | SLIST_INIT(&tmp); |
| 305 | inm_disconnect(inm); |
| 306 | inm->inm_ifma->ifma_protospec = NULL; |
| 307 | SLIST_INSERT_HEAD(&tmp, inm, inm_nrele); |
| 308 | inm_release_list_deferred(&tmp); |
| 309 | } |
| 310 | } |
| 311 | |
| 312 | static void |
| 313 | inm_release_task(void *arg __unused, int pending __unused) |
no test coverage detected