Lines Matching full:job

97 static void	soo_aio_cancel(struct kaiocb *job);
438 * completed by the AIO job so far.
599 soaio_process_job(struct socket *so, sb_which which, struct kaiocb *job) in soaio_process_job() argument
605 struct file *fp = job->fd_file; in soaio_process_job()
612 aio_switch_vmspace(job); in soaio_process_job()
616 td->td_ucred = job->cred; in soaio_process_job()
618 job_total_nbytes = job->uiop->uio_resid + job->aio_done; in soaio_process_job()
619 done = job->aio_done; in soaio_process_job()
620 cnt = job->uiop->uio_resid; in soaio_process_job()
621 job->uiop->uio_offset = 0; in soaio_process_job()
622 job->uiop->uio_td = td; in soaio_process_job()
638 error = soreceive(so, NULL, job->uiop, NULL, NULL, in soaio_process_job()
641 job->msgrcv = 1; in soaio_process_job()
650 error = sousrsend(so, NULL, job->uiop, NULL, flags, in soaio_process_job()
651 job->userproc); in soaio_process_job()
653 job->msgsnd = 1; in soaio_process_job()
656 done += cnt - job->uiop->uio_resid; in soaio_process_job()
657 job->aio_done = done; in soaio_process_job()
680 if (!aio_set_cancel_function(job, soo_aio_cancel)) { in soaio_process_job()
683 aio_complete(job, done, 0); in soaio_process_job()
685 aio_cancel(job); in soaio_process_job()
688 TAILQ_INSERT_HEAD(&sb->sb_aiojobq, job, list); in soaio_process_job()
698 aio_complete(job, -1, error); in soaio_process_job()
700 aio_complete(job, done, 0); in soaio_process_job()
707 struct kaiocb *job; in soaio_process_sb() local
713 job = TAILQ_FIRST(&sb->sb_aiojobq); in soaio_process_sb()
714 TAILQ_REMOVE(&sb->sb_aiojobq, job, list); in soaio_process_sb()
715 if (!aio_clear_cancel_function(job)) in soaio_process_sb()
718 soaio_process_job(so, which, job); in soaio_process_sb()
769 soo_aio_cancel(struct kaiocb *job) in soo_aio_cancel() argument
777 so = job->fd_file->f_data; in soo_aio_cancel()
778 opcode = job->uaiocb.aio_lio_opcode; in soo_aio_cancel()
789 if (!aio_cancel_cleared(job)) in soo_aio_cancel()
790 TAILQ_REMOVE(&sb->sb_aiojobq, job, list); in soo_aio_cancel()
795 done = job->aio_done; in soo_aio_cancel()
797 aio_complete(job, done, 0); in soo_aio_cancel()
799 aio_cancel(job); in soo_aio_cancel()
803 soo_aio_queue(struct file *fp, struct kaiocb *job) in soo_aio_queue() argument
807 return (so->so_proto->pr_aio_queue(so, job)); in soo_aio_queue()
811 soaio_queue_generic(struct socket *so, struct kaiocb *job) in soaio_queue_generic() argument
817 switch (job->uaiocb.aio_lio_opcode & (LIO_WRITE | LIO_READ)) { in soaio_queue_generic()
837 if (!aio_set_cancel_function(job, soo_aio_cancel)) in soaio_queue_generic()
838 panic("new job was cancelled"); in soaio_queue_generic()
839 TAILQ_INSERT_TAIL(&sb->sb_aiojobq, job, list); in soaio_queue_generic()