Lines Matching refs:bio
305 struct bio *head, struct bio *tail) in requeue_list()
308 struct bio *old_head; in requeue_list()
331 struct bio *pending; in run_scheduled_bios()
335 struct bio *tail; in run_scheduled_bios()
336 struct bio *cur; in run_scheduled_bios()
5854 static inline void btrfs_end_bbio(struct btrfs_bio *bbio, struct bio *bio) in btrfs_end_bbio() argument
5856 bio->bi_private = bbio->private; in btrfs_end_bbio()
5857 bio->bi_end_io = bbio->end_io; in btrfs_end_bbio()
5858 bio_endio(bio); in btrfs_end_bbio()
5863 static void btrfs_end_bio(struct bio *bio) in btrfs_end_bio() argument
5865 struct btrfs_bio *bbio = bio->bi_private; in btrfs_end_bio()
5868 if (bio->bi_error) { in btrfs_end_bio()
5870 if (bio->bi_error == -EIO || bio->bi_error == -EREMOTEIO) { in btrfs_end_bio()
5872 btrfs_io_bio(bio)->stripe_index; in btrfs_end_bio()
5878 if (bio->bi_rw & WRITE) in btrfs_end_bio()
5884 if ((bio->bi_rw & WRITE_FLUSH) == WRITE_FLUSH) in btrfs_end_bio()
5892 if (bio == bbio->orig_bio) in btrfs_end_bio()
5899 bio_put(bio); in btrfs_end_bio()
5900 bio = bbio->orig_bio; in btrfs_end_bio()
5903 btrfs_io_bio(bio)->mirror_num = bbio->mirror_num; in btrfs_end_bio()
5908 bio->bi_error = -EIO; in btrfs_end_bio()
5914 bio->bi_error = 0; in btrfs_end_bio()
5917 btrfs_end_bbio(bbio, bio); in btrfs_end_bio()
5919 bio_put(bio); in btrfs_end_bio()
5932 int rw, struct bio *bio) in btrfs_schedule_bio() argument
5938 bio_io_error(bio); in btrfs_schedule_bio()
5944 bio_get(bio); in btrfs_schedule_bio()
5945 btrfsic_submit_bio(rw, bio); in btrfs_schedule_bio()
5946 bio_put(bio); in btrfs_schedule_bio()
5957 WARN_ON(bio->bi_next); in btrfs_schedule_bio()
5958 bio->bi_next = NULL; in btrfs_schedule_bio()
5959 bio->bi_rw |= rw; in btrfs_schedule_bio()
5962 if (bio->bi_rw & REQ_SYNC) in btrfs_schedule_bio()
5968 pending_bios->tail->bi_next = bio; in btrfs_schedule_bio()
5970 pending_bios->tail = bio; in btrfs_schedule_bio()
5972 pending_bios->head = bio; in btrfs_schedule_bio()
5984 struct bio *bio, u64 physical, int dev_nr, in submit_stripe_bio() argument
5989 bio->bi_private = bbio; in submit_stripe_bio()
5990 btrfs_io_bio(bio)->stripe_index = dev_nr; in submit_stripe_bio()
5991 bio->bi_end_io = btrfs_end_bio; in submit_stripe_bio()
5992 bio->bi_iter.bi_sector = physical >> 9; in submit_stripe_bio()
6001 (u64)bio->bi_iter.bi_sector, (u_long)dev->bdev->bd_dev, in submit_stripe_bio()
6002 name->str, dev->devid, bio->bi_iter.bi_size); in submit_stripe_bio()
6006 bio->bi_bdev = dev->bdev; in submit_stripe_bio()
6011 btrfs_schedule_bio(root, dev, rw, bio); in submit_stripe_bio()
6013 btrfsic_submit_bio(rw, bio); in submit_stripe_bio()
6016 static void bbio_error(struct btrfs_bio *bbio, struct bio *bio, u64 logical) in bbio_error() argument
6021 WARN_ON(bio != bbio->orig_bio); in bbio_error()
6023 btrfs_io_bio(bio)->mirror_num = bbio->mirror_num; in bbio_error()
6024 bio->bi_iter.bi_sector = logical >> 9; in bbio_error()
6025 bio->bi_error = -EIO; in bbio_error()
6026 btrfs_end_bbio(bbio, bio); in bbio_error()
6030 int btrfs_map_bio(struct btrfs_root *root, int rw, struct bio *bio, in btrfs_map_bio() argument
6034 struct bio *first_bio = bio; in btrfs_map_bio()
6035 u64 logical = (u64)bio->bi_iter.bi_sector << 9; in btrfs_map_bio()
6043 length = bio->bi_iter.bi_size; in btrfs_map_bio()
6065 ret = raid56_parity_write(root, bio, bbio, map_length); in btrfs_map_bio()
6067 ret = raid56_parity_recover(root, bio, bbio, map_length, in btrfs_map_bio()
6089 bio = btrfs_bio_clone(first_bio, GFP_NOFS); in btrfs_map_bio()
6090 BUG_ON(!bio); /* -ENOMEM */ in btrfs_map_bio()
6092 bio = first_bio; in btrfs_map_bio()
6094 submit_stripe_bio(root, bbio, bio, in btrfs_map_bio()