| 1065 | } |
| 1066 | |
| 1067 | static void __noinline |
| 1068 | rms_runlock_fallback(struct rmslock *rms) |
| 1069 | { |
| 1070 | |
| 1071 | rms_int_influx_exit(rms, rms_int_pcpu(rms)); |
| 1072 | critical_exit(); |
| 1073 | |
| 1074 | mtx_lock(&rms->mtx); |
| 1075 | MPASS(rms->writers > 0); |
| 1076 | MPASS(rms->readers > 0); |
| 1077 | MPASS(rms->debug_readers == rms->readers); |
| 1078 | rms_int_debug_readers_dec(rms); |
| 1079 | rms->readers--; |
| 1080 | if (rms->readers == 0) |
| 1081 | wakeup_one(&rms->writers); |
| 1082 | mtx_unlock(&rms->mtx); |
| 1083 | } |
| 1084 | |
| 1085 | void |
| 1086 | rms_runlock(struct rmslock *rms) |
no test coverage detected