Lines Matching defs:iocb
56 struct kiocb iocb;
78 fput(aio->iocb.ki_filp);
85 struct kiocb *iocb = &aio->iocb;
91 orig_iocb->ki_pos = iocb->ki_pos;
95 static void backing_aio_rw_complete(struct kiocb *iocb, long res)
97 struct backing_aio *aio = container_of(iocb, struct backing_aio, iocb);
100 if (iocb->ki_flags & IOCB_WRITE)
101 kiocb_end_write(iocb);
111 backing_aio_rw_complete(&aio->iocb, aio->res);
114 static void backing_aio_queue_completion(struct kiocb *iocb, long res)
116 struct backing_aio *aio = container_of(iocb, struct backing_aio, iocb);
127 static int backing_aio_init_wq(struct kiocb *iocb)
129 struct super_block *sb = file_inode(iocb->ki_filp)->i_sb;
139 struct kiocb *iocb, int flags,
152 if (iocb->ki_flags & IOCB_DIRECT &&
157 if (is_sync_kiocb(iocb)) {
160 ret = vfs_iter_read(file, iter, &iocb->ki_pos, rwf);
167 aio->orig_iocb = iocb;
168 kiocb_clone(&aio->iocb, iocb, get_file(file));
169 aio->iocb.ki_complete = backing_aio_rw_complete;
171 ret = vfs_iocb_iter_read(file, &aio->iocb, iter);
187 struct kiocb *iocb, int flags,
203 if (iocb->ki_flags & IOCB_DIRECT &&
214 if (is_sync_kiocb(iocb)) {
217 ret = vfs_iter_write(file, iter, &iocb->ki_pos, rwf);
223 ret = backing_aio_init_wq(iocb);
232 aio->orig_iocb = iocb;
234 kiocb_clone(&aio->iocb, iocb, get_file(file));
235 aio->iocb.ki_flags = flags;
236 aio->iocb.ki_complete = backing_aio_queue_completion;
238 ret = vfs_iocb_iter_write(file, &aio->iocb, iter);