Lines Matching defs:bio
20 #include <linux/bio.h>
64 u32 index, int offset, struct bio *bio);
529 static void zram_page_end_io(struct bio *bio)
531 struct page *page = bio_first_page_all(bio);
533 page_endio(page, op_is_write(bio_op(bio)),
534 blk_status_to_errno(bio->bi_status));
535 bio_put(bio);
542 unsigned long entry, struct bio *parent)
544 struct bio *bio;
546 bio = bio_alloc(GFP_ATOMIC, 1);
547 if (!bio)
550 bio->bi_iter.bi_sector = entry * (PAGE_SIZE >> 9);
551 bio_set_dev(bio, zram->bdev);
552 if (!bio_add_page(bio, bvec->bv_page, bvec->bv_len, bvec->bv_offset)) {
553 bio_put(bio);
558 bio->bi_opf = REQ_OP_READ;
559 bio->bi_end_io = zram_page_end_io;
561 bio->bi_opf = parent->bi_opf;
562 bio_chain(bio, parent);
565 submit_bio(bio);
578 struct bio bio;
663 bio_init(&bio, &bio_vec, 1);
664 bio_set_dev(&bio, zram->bdev);
665 bio.bi_iter.bi_sector = blk_idx * (PAGE_SIZE >> 9);
666 bio.bi_opf = REQ_OP_WRITE | REQ_SYNC;
668 bio_add_page(&bio, bvec.bv_page, bvec.bv_len,
674 err = submit_bio_wait(&bio);
733 struct bio *bio;
743 struct bio *bio = zw->bio;
745 read_from_bdev_async(zram, &zw->bvec, entry, bio);
754 unsigned long entry, struct bio *bio)
761 work.bio = bio;
772 unsigned long entry, struct bio *bio)
780 unsigned long entry, struct bio *parent, bool sync)
791 unsigned long entry, struct bio *parent, bool sync)
1240 struct bio *bio, bool partial_io)
1259 bio, partial_io);
1262 if (!bio) {
1308 /* Should NEVER happen. Return bio error if it does. */
1316 u32 index, int offset, struct bio *bio)
1329 ret = __zram_bvec_read(zram, page, index, bio, is_partial_io(bvec));
1349 u32 index, struct bio *bio)
1468 u32 index, int offset, struct bio *bio)
1486 ret = __zram_bvec_read(zram, page, index, bio, true);
1501 ret = __zram_bvec_write(zram, &vec, index, bio);
1514 int offset, struct bio *bio)
1516 size_t n = bio->bi_iter.bi_size;
1552 int offset, unsigned int op, struct bio *bio)
1558 ret = zram_bvec_read(zram, bvec, index, offset, bio);
1562 ret = zram_bvec_write(zram, bvec, index, offset, bio);
1579 static void __zram_make_request(struct zram *zram, struct bio *bio)
1587 index = bio->bi_iter.bi_sector >> SECTORS_PER_PAGE_SHIFT;
1588 offset = (bio->bi_iter.bi_sector &
1591 switch (bio_op(bio)) {
1594 zram_bio_discard(zram, index, offset, bio);
1595 bio_endio(bio);
1601 start_time = bio_start_io_acct(bio);
1602 bio_for_each_segment(bvec, bio, iter) {
1610 bio_op(bio), bio) < 0) {
1611 bio->bi_status = BLK_STS_IOERR;
1621 bio_end_io_acct(bio, start_time);
1622 bio_endio(bio);
1628 static blk_qc_t zram_submit_bio(struct bio *bio)
1630 struct zram *zram = bio->bi_disk->private_data;
1632 if (!valid_io_request(zram, bio->bi_iter.bi_sector,
1633 bio->bi_iter.bi_size)) {
1638 __zram_make_request(zram, bio);
1642 bio_io_error(bio);
1696 * It causes resubmit the I/O with bio request by upper functions
1698 * bio->bi_end_io does things to handle the error