MCPcopy Create free account
hub / github.com/F-Stack/f-stack / rms_runlock

Function rms_runlock

freebsd/kern/kern_rmlock.c:1085–1103  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1083}
1084
1085void
1086rms_runlock(struct rmslock *rms)
1087{
1088 struct rmslock_pcpu *pcpu;
1089
1090 critical_enter();
1091 pcpu = rms_int_pcpu(rms);
1092 rms_int_influx_enter(rms, pcpu);
1093 atomic_interrupt_fence();
1094 if (__predict_false(rms->writers > 0)) {
1095 rms_runlock_fallback(rms);
1096 return;
1097 }
1098 atomic_interrupt_fence();
1099 rms_int_readers_dec(rms, pcpu);
1100 atomic_interrupt_fence();
1101 rms_int_influx_exit(rms, pcpu);
1102 critical_exit();
1103}
1104
1105struct rmslock_ipi {
1106 struct rmslock *rms;

Callers 2

mac_policy_sunlock_sleepFunction · 0.85
rms_unlockFunction · 0.85

Calls 7

rms_int_pcpuFunction · 0.85
rms_int_influx_enterFunction · 0.85
rms_runlock_fallbackFunction · 0.85
rms_int_readers_decFunction · 0.85
rms_int_influx_exitFunction · 0.85
critical_enterFunction · 0.50
critical_exitFunction · 0.50

Tested by

no test coverage detected