Lines Matching refs:bio
6 #include <linux/bio.h>
49 * @bio: bio whose integrity vector to update
56 static void dm_bio_integrity_rewind(struct bio *bio, unsigned int bytes_done)
58 struct bio_integrity_payload *bip = bio_integrity(bio);
59 struct blk_integrity *bi = blk_get_integrity(bio->bi_bdev->bd_disk);
68 static inline void dm_bio_integrity_rewind(struct bio *bio,
94 static void dm_bio_crypt_rewind(struct bio *bio, unsigned int bytes)
96 struct bio_crypt_ctx *bc = bio->bi_crypt_context;
104 static inline void dm_bio_crypt_rewind(struct bio *bio, unsigned int bytes)
110 static inline void dm_bio_rewind_iter(const struct bio *bio,
116 if (bio_no_advance_iter(bio))
119 dm_bvec_iter_rewind(bio->bi_io_vec, iter, bytes);
123 * dm_bio_rewind - update ->bi_iter of @bio by rewinding @bytes.
124 * @bio: bio to rewind
128 * Caller must ensure that @bio has a fixed end sector, to allow
129 * rewinding from end of bio and restoring its original position.
130 * Caller is also responsibile for restoring bio's size.
132 static void dm_bio_rewind(struct bio *bio, unsigned int bytes)
134 if (bio_integrity(bio))
135 dm_bio_integrity_rewind(bio, bytes);
137 if (bio_has_crypt_ctx(bio))
138 dm_bio_crypt_rewind(bio, bytes);
140 dm_bio_rewind_iter(bio, &bio->bi_iter, bytes);
145 struct bio *orig = io->orig_bio;
146 struct bio *new_orig = bio_alloc_clone(orig->bi_bdev, orig,
150 * end sector is fixed for original bio, but we still need
151 * to restore bio's size manually (using io->sectors).