autofs_softc
struct autofs_softc *autofs_softc = NULL;
if (autofs_softc->sc_dev_opened == false)
if (autofs_softc->sc_dev_sid == curproc->p_pgrp->pg_id) {
mutex_enter(&autofs_softc->sc_lock);
cv_broadcast(&autofs_softc->sc_cv);
mutex_exit(&autofs_softc->sc_lock);
KASSERT(mutex_owned(&autofs_softc->sc_lock));
TAILQ_FOREACH(ar, &autofs_softc->sc_requests, ar_next) {
ar->ar_id = autofs_softc->sc_last_request_id++;
TAILQ_INSERT_TAIL(&autofs_softc->sc_requests, ar, ar_next);
cv_broadcast(&autofs_softc->sc_cv);
error = cv_wait_sig(&autofs_softc->sc_cv,
&autofs_softc->sc_lock);
cv_wait(&autofs_softc->sc_cv, &autofs_softc->sc_lock);
TAILQ_REMOVE(&autofs_softc->sc_requests, ar, ar_next);
mutex_exit(&autofs_softc->sc_lock);
mutex_enter(&autofs_softc->sc_lock);
mutex_exit(&autofs_softc->sc_lock);
mutex_enter(&autofs_softc->sc_lock);
mutex_enter(&autofs_softc->sc_lock);
TAILQ_FOREACH(ar, &autofs_softc->sc_requests, ar_next) {
error = cv_wait_sig(&autofs_softc->sc_cv,
&autofs_softc->sc_lock);
mutex_exit(&autofs_softc->sc_lock);
mutex_exit(&autofs_softc->sc_lock);
autofs_softc->sc_dev_sid = curproc->p_pgrp->pg_id;
mutex_enter(&autofs_softc->sc_lock);
TAILQ_FOREACH(ar, &autofs_softc->sc_requests, ar_next) {
mutex_exit(&autofs_softc->sc_lock);
cv_broadcast(&autofs_softc->sc_cv);
mutex_exit(&autofs_softc->sc_lock);
mutex_enter(&autofs_softc->sc_lock);
if (autofs_softc->sc_dev_opened) {
mutex_exit(&autofs_softc->sc_lock);
autofs_softc->sc_dev_opened = true;
mutex_exit(&autofs_softc->sc_lock);
mutex_enter(&autofs_softc->sc_lock);
KASSERT(autofs_softc->sc_dev_opened);
autofs_softc->sc_dev_opened = false;
mutex_exit(&autofs_softc->sc_lock);
KASSERT(autofs_softc->sc_dev_opened);
extern struct autofs_softc *autofs_softc;
mutex_enter(&autofs_softc->sc_lock);
TAILQ_FOREACH(ar, &autofs_softc->sc_requests, ar_next) {
mutex_exit(&autofs_softc->sc_lock);
cv_broadcast(&autofs_softc->sc_cv);
mutex_exit(&autofs_softc->sc_lock);
KASSERT(autofs_softc);
mutex_enter(&autofs_softc->sc_lock);
if (autofs_softc->sc_dev_opened) {
mutex_exit(&autofs_softc->sc_lock);
mutex_exit(&autofs_softc->sc_lock);
KASSERT(!autofs_softc);
autofs_softc = kmem_zalloc(sizeof(*autofs_softc), KM_SLEEP);
TAILQ_INIT(&autofs_softc->sc_requests);
cv_init(&autofs_softc->sc_cv, "autofscv");
mutex_init(&autofs_softc->sc_lock, MUTEX_DEFAULT, IPL_NONE);
autofs_softc->sc_dev_opened = false;
KASSERT(autofs_softc);
KASSERT(!autofs_softc->sc_dev_opened);
struct autofs_softc *sc = autofs_softc;
autofs_softc = NULL;
mutex_enter(&autofs_softc->sc_lock);
mutex_exit(&autofs_softc->sc_lock);