| 615 | } |
| 616 | |
| 617 | void |
| 618 | _rm_wunlock_debug(struct rmlock *rm, const char *file, int line) |
| 619 | { |
| 620 | |
| 621 | if (SCHEDULER_STOPPED()) |
| 622 | return; |
| 623 | |
| 624 | KASSERT(!rm_destroyed(rm), |
| 625 | ("rm_wunlock() of destroyed rmlock @ %s:%d", file, line)); |
| 626 | _rm_assert(rm, RA_WLOCKED, file, line); |
| 627 | WITNESS_UNLOCK(&rm->lock_object, LOP_EXCLUSIVE, file, line); |
| 628 | LOCK_LOG_LOCK("RMWUNLOCK", &rm->lock_object, 0, 0, file, line); |
| 629 | _rm_wunlock(rm); |
| 630 | TD_LOCKS_DEC(curthread); |
| 631 | } |
| 632 | |
| 633 | int |
| 634 | _rm_rlock_debug(struct rmlock *rm, struct rm_priotracker *tracker, |
nothing calls this directly
no test coverage detected