Index: padlock.c =================================================================== --- padlock.c (wersja 180626) +++ padlock.c (kopia robocza) @@ -271,7 +271,7 @@ padlock_hash_free(ses); bzero(ses, sizeof(*ses)); ses->ses_used = 0; - TAILQ_INSERT_HEAD(&sc->sc_sessions, ses, ses_next); + TAILQ_INSERT_TAIL(&sc->sc_sessions, ses, ses_next); rw_wunlock(&sc->sc_sessions_lock); return (0); } @@ -322,12 +322,12 @@ goto out; } - rw_rlock(&sc->sc_sessions_lock); + rw_wlock(&sc->sc_sessions_lock); TAILQ_FOREACH(ses, &sc->sc_sessions, ses_next) { if (ses->ses_id == (crp->crp_sid & 0xffffffff)) break; } - rw_runlock(&sc->sc_sessions_lock); + rw_wunlock(&sc->sc_sessions_lock); if (ses == NULL) { error = EINVAL; goto out;