| 2474 | } |
| 2475 | |
| 2476 | static void |
| 2477 | unp_discard(struct file *fp) |
| 2478 | { |
| 2479 | struct unp_defer *dr; |
| 2480 | |
| 2481 | if (unp_externalize_fp(fp)) { |
| 2482 | dr = malloc(sizeof(*dr), M_TEMP, M_WAITOK); |
| 2483 | dr->ud_fp = fp; |
| 2484 | UNP_DEFERRED_LOCK(); |
| 2485 | SLIST_INSERT_HEAD(&unp_defers, dr, ud_link); |
| 2486 | UNP_DEFERRED_UNLOCK(); |
| 2487 | atomic_add_int(&unp_defers_count, 1); |
| 2488 | taskqueue_enqueue(taskqueue_thread, &unp_defer_task); |
| 2489 | } else |
| 2490 | closef_nothread(fp); |
| 2491 | } |
| 2492 | |
| 2493 | static void |
| 2494 | unp_process_defers(void *arg __unused, int pending) |
no test coverage detected