Lines Matching defs:iocb

216 static unsigned int dio_bio_write_op(struct kiocb *iocb)
221 if (iocb->ki_flags & IOCB_DSYNC)
237 __blkdev_direct_IO_simple(struct kiocb *iocb, struct iov_iter *iter,
240 struct file *file = iocb->ki_filp;
243 loff_t pos = iocb->ki_pos;
265 bio.bi_write_hint = iocb->ki_hint;
268 bio.bi_ioprio = iocb->ki_ioprio;
280 bio.bi_opf = dio_bio_write_op(iocb);
283 if (iocb->ki_flags & IOCB_NOWAIT)
285 if (iocb->ki_flags & IOCB_HIPRI)
286 bio_set_polled(&bio, iocb);
293 if (!(iocb->ki_flags & IOCB_HIPRI) ||
314 struct kiocb *iocb;
345 struct kiocb *iocb = dio->iocb;
350 iocb->ki_pos += ret;
355 dio->iocb->ki_complete(iocb, ret, 0);
375 __blkdev_direct_IO(struct kiocb *iocb, struct iov_iter *iter, int nr_pages)
377 struct file *file = iocb->ki_filp;
383 bool is_poll = (iocb->ki_flags & IOCB_HIPRI) != 0;
385 loff_t pos = iocb->ki_pos;
396 dio->is_sync = is_sync = is_sync_kiocb(iocb);
401 dio->iocb = iocb;
418 bio->bi_write_hint = iocb->ki_hint;
421 bio->bi_ioprio = iocb->ki_ioprio;
435 bio->bi_opf = dio_bio_write_op(iocb);
438 if (iocb->ki_flags & IOCB_NOWAIT)
448 if (iocb->ki_flags & IOCB_HIPRI) {
449 bio_set_polled(bio, iocb);
456 WRITE_ONCE(iocb->ki_cookie, qc);
489 if (!(iocb->ki_flags & IOCB_HIPRI) ||
505 blkdev_direct_IO(struct kiocb *iocb, struct iov_iter *iter)
512 if (is_sync_kiocb(iocb) && nr_pages <= BIO_MAX_PAGES)
513 return __blkdev_direct_IO_simple(iocb, iter, nr_pages);
515 return __blkdev_direct_IO(iocb, iter, min(nr_pages, BIO_MAX_PAGES));
1903 ssize_t blkdev_write_iter(struct kiocb *iocb, struct iov_iter *from)
1905 struct file *file = iocb->ki_filp;
1921 if (iocb->ki_pos >= size)
1924 if ((iocb->ki_flags & (IOCB_NOWAIT | IOCB_DIRECT)) == IOCB_NOWAIT)
1927 size -= iocb->ki_pos;
1934 ret = __generic_file_write_iter(iocb, from);
1936 ret = generic_write_sync(iocb, ret);
1943 ssize_t blkdev_read_iter(struct kiocb *iocb, struct iov_iter *to)
1945 struct file *file = iocb->ki_filp;
1948 loff_t pos = iocb->ki_pos;
1961 ret = generic_file_read_iter(iocb, to);