Lines Matching refs:io_data

755 	struct ffs_io_data *io_data = container_of(work, struct ffs_io_data,  in ffs_user_copy_worker()  local
757 int ret = io_data->req->status ? io_data->req->status : in ffs_user_copy_worker()
758 io_data->req->actual; in ffs_user_copy_worker()
759 bool kiocb_has_eventfd = io_data->kiocb->ki_flags & IOCB_EVENTFD; in ffs_user_copy_worker()
761 if (io_data->read && ret > 0) { in ffs_user_copy_worker()
765 use_mm(io_data->mm); in ffs_user_copy_worker()
766 ret = ffs_copy_to_iter(io_data->buf, ret, &io_data->data); in ffs_user_copy_worker()
767 unuse_mm(io_data->mm); in ffs_user_copy_worker()
771 io_data->kiocb->ki_complete(io_data->kiocb, ret, ret); in ffs_user_copy_worker()
773 if (io_data->ffs->ffs_eventfd && !kiocb_has_eventfd) in ffs_user_copy_worker()
774 eventfd_signal(io_data->ffs->ffs_eventfd, 1); in ffs_user_copy_worker()
776 usb_ep_free_request(io_data->ep, io_data->req); in ffs_user_copy_worker()
778 if (io_data->read) in ffs_user_copy_worker()
779 kfree(io_data->to_free); in ffs_user_copy_worker()
780 kfree(io_data->buf); in ffs_user_copy_worker()
781 kfree(io_data); in ffs_user_copy_worker()
787 struct ffs_io_data *io_data = req->context; in ffs_epfile_async_io_complete() local
788 struct ffs_data *ffs = io_data->ffs; in ffs_epfile_async_io_complete()
792 INIT_WORK(&io_data->work, ffs_user_copy_worker); in ffs_epfile_async_io_complete()
793 queue_work(ffs->io_completion_wq, &io_data->work); in ffs_epfile_async_io_complete()
878 static ssize_t ffs_epfile_io(struct file *file, struct ffs_io_data *io_data) in ffs_epfile_io() argument
904 halt = (!io_data->read == !epfile->in); in ffs_epfile_io()
924 if (!io_data->aio && io_data->read) { in ffs_epfile_io()
925 ret = __ffs_epfile_read_buffered(epfile, &io_data->data); in ffs_epfile_io()
943 data_len = iov_iter_count(&io_data->data); in ffs_epfile_io()
948 if (io_data->read) in ffs_epfile_io()
957 if (!io_data->read && in ffs_epfile_io()
958 !copy_from_iter_full(data, data_len, &io_data->data)) { in ffs_epfile_io()
987 } else if (!io_data->aio) { in ffs_epfile_io()
1017 else if (io_data->read && ep->status > 0) in ffs_epfile_io()
1019 &io_data->data); in ffs_epfile_io()
1029 io_data->buf = data; in ffs_epfile_io()
1030 io_data->ep = ep->ep; in ffs_epfile_io()
1031 io_data->req = req; in ffs_epfile_io()
1032 io_data->ffs = epfile->ffs; in ffs_epfile_io()
1034 req->context = io_data; in ffs_epfile_io()
1078 struct ffs_io_data *io_data = container_of(work, struct ffs_io_data, in ffs_aio_cancel_worker() local
1083 usb_ep_dequeue(io_data->ep, io_data->req); in ffs_aio_cancel_worker()
1088 struct ffs_io_data *io_data = kiocb->private; in ffs_aio_cancel() local
1089 struct ffs_data *ffs = io_data->ffs; in ffs_aio_cancel()
1094 if (likely(io_data && io_data->ep && io_data->req)) { in ffs_aio_cancel()
1095 INIT_WORK(&io_data->cancellation_work, ffs_aio_cancel_worker); in ffs_aio_cancel()
1096 queue_work(ffs->io_completion_wq, &io_data->cancellation_work); in ffs_aio_cancel()
1107 struct ffs_io_data io_data, *p = &io_data; in ffs_epfile_write_iter() local
1113 p = kmalloc(sizeof(io_data), GFP_KERNEL); in ffs_epfile_write_iter()
1143 struct ffs_io_data io_data, *p = &io_data; in ffs_epfile_read_iter() local
1149 p = kmalloc(sizeof(io_data), GFP_KERNEL); in ffs_epfile_read_iter()