Lines Matching refs:iocb
79 struct kiocb iocb; member
101 fput(aio->iocb.ki_filp); in backing_aio_put()
108 struct kiocb *iocb = &aio->iocb; in backing_aio_cleanup() local
112 aio->end_write(orig_iocb->ki_filp, iocb->ki_pos, res); in backing_aio_cleanup()
114 orig_iocb->ki_pos = iocb->ki_pos; in backing_aio_cleanup()
118 static void backing_aio_rw_complete(struct kiocb *iocb, long res) in backing_aio_rw_complete() argument
120 struct backing_aio *aio = container_of(iocb, struct backing_aio, iocb); in backing_aio_rw_complete()
123 if (iocb->ki_flags & IOCB_WRITE) in backing_aio_rw_complete()
124 kiocb_end_write(iocb); in backing_aio_rw_complete()
134 backing_aio_rw_complete(&aio->iocb, aio->res); in backing_aio_complete_work()
137 static void backing_aio_queue_completion(struct kiocb *iocb, long res) in backing_aio_queue_completion() argument
139 struct backing_aio *aio = container_of(iocb, struct backing_aio, iocb); in backing_aio_queue_completion()
150 static int backing_aio_init_wq(struct kiocb *iocb) in backing_aio_init_wq() argument
152 struct super_block *sb = file_inode(iocb->ki_filp)->i_sb; in backing_aio_init_wq()
162 struct kiocb *iocb, int flags, in backing_file_read_iter() argument
175 if (iocb->ki_flags & IOCB_DIRECT && in backing_file_read_iter()
180 if (is_sync_kiocb(iocb)) { in backing_file_read_iter()
183 ret = vfs_iter_read(file, iter, &iocb->ki_pos, rwf); in backing_file_read_iter()
190 aio->orig_iocb = iocb; in backing_file_read_iter()
191 kiocb_clone(&aio->iocb, iocb, get_file(file)); in backing_file_read_iter()
192 aio->iocb.ki_complete = backing_aio_rw_complete; in backing_file_read_iter()
194 ret = vfs_iocb_iter_read(file, &aio->iocb, iter); in backing_file_read_iter()
210 struct kiocb *iocb, int flags, in backing_file_write_iter() argument
226 if (iocb->ki_flags & IOCB_DIRECT && in backing_file_write_iter()
237 if (is_sync_kiocb(iocb)) { in backing_file_write_iter()
240 ret = vfs_iter_write(file, iter, &iocb->ki_pos, rwf); in backing_file_write_iter()
242 ctx->end_write(ctx->user_file, iocb->ki_pos, ret); in backing_file_write_iter()
246 ret = backing_aio_init_wq(iocb); in backing_file_write_iter()
255 aio->orig_iocb = iocb; in backing_file_write_iter()
257 kiocb_clone(&aio->iocb, iocb, get_file(file)); in backing_file_write_iter()
258 aio->iocb.ki_flags = flags; in backing_file_write_iter()
259 aio->iocb.ki_complete = backing_aio_queue_completion; in backing_file_write_iter()
261 ret = vfs_iocb_iter_write(file, &aio->iocb, iter); in backing_file_write_iter()