Home | History | Annotate | Download | only in kern

Lines Matching defs:lio

272 	struct lio_req *lio;
324 /* Decrease a reference counter, if there is a LIO structure */
325 lio = a_job->lio;
326 refcnt = (lio != NULL ? --lio->refcnt : -1);
335 /* Destroy the LIO structure */
337 aio_sendsig(p, &lio->sig);
338 pool_put(&aio_lio_pool, lio);
480 aio_enqueue_job(int op, void *aiocb_uptr, struct lio_req *lio)
511 KASSERT(lio != NULL);
520 KASSERT(lio == NULL);
541 * In LIO case, we did that already. We will recheck this with
544 if (lio == NULL && p->p_aio == NULL)
571 a_job->lio = lio;
590 if (lio)
591 lio->refcnt++;
619 struct lio_req *lio;
665 lio = a_job->lio;
666 if (lio != NULL && --lio->refcnt != 0)
667 a_job->lio
699 if (a_job->lio) {
700 lio = a_job->lio;
701 aio_sendsig(p, &lio->sig);
702 pool_put(&aio_lio_pool, lio);
935 struct lio_req *lio;
953 /* Create a LIO structure */
954 lio = pool_get(&aio_lio_pool, PR_WAITOK);
955 lio->refcnt = 1;
960 memset(&lio->sig, 0, sizeof(struct sigevent));
965 struct sigevent *sig = &lio->sig;
967 error = copyin(SCARG(uap, sig), &lio->sig,
976 memset(&lio->sig, 0, sizeof(struct sigevent));
984 pool_put(&aio_lio_pool, lio);
1000 error = aio_enqueue_job(AIO_LIO, aiocbp_list[i], lio);
1020 * the LIO structure will be freed here.
1022 while (lio->refcnt > 1 && error == 0)
1029 if (--lio->refcnt != 0)
1030 lio = NULL;
1032 if (lio != NULL) {
1033 aio_sendsig(p, &lio->sig);
1034 pool_put(&aio_lio_pool, lio);