Lines Matching refs:bio
33 static int copy_bio_to_actor(struct bio *bio, in copy_bio_to_actor() argument
46 if (WARN_ON_ONCE(!bio_next_segment(bio, &iter_all))) in copy_bio_to_actor()
70 if (!bio_next_segment(bio, &iter_all)) in copy_bio_to_actor()
79 static int squashfs_bio_read_cached(struct bio *fullbio, in squashfs_bio_read_cached()
87 struct bio *bio = NULL; in squashfs_bio_read_cached() local
122 if (!bio || idx != end_idx) { in squashfs_bio_read_cached()
123 struct bio *new = bio_alloc_clone(bdev, fullbio, in squashfs_bio_read_cached()
126 if (bio) { in squashfs_bio_read_cached()
127 bio_trim(bio, start_idx * PAGE_SECTORS, in squashfs_bio_read_cached()
129 bio_chain(bio, new); in squashfs_bio_read_cached()
130 submit_bio(bio); in squashfs_bio_read_cached()
133 bio = new; in squashfs_bio_read_cached()
141 if (bio) { in squashfs_bio_read_cached()
142 bio_trim(bio, start_idx * PAGE_SECTORS, in squashfs_bio_read_cached()
144 err = submit_bio_wait(bio); in squashfs_bio_read_cached()
145 bio_put(bio); in squashfs_bio_read_cached()
217 struct bio **biop, int *block_offset) in squashfs_bio_read()
229 struct bio *bio; in squashfs_bio_read() local
231 bio = bio_kmalloc(page_count, GFP_NOIO); in squashfs_bio_read()
232 if (!bio) in squashfs_bio_read()
234 bio_init(bio, sb->s_bdev, bio->bi_inline_vecs, page_count, REQ_OP_READ); in squashfs_bio_read()
235 bio->bi_iter.bi_sector = block * (msblk->devblksize >> SECTOR_SHIFT); in squashfs_bio_read()
256 __bio_add_page(bio, page, len, offset); in squashfs_bio_read()
262 error = squashfs_bio_read_cached(bio, cache_mapping, index, in squashfs_bio_read()
266 error = submit_bio_wait(bio); in squashfs_bio_read()
270 *biop = bio; in squashfs_bio_read()
275 bio_free_pages(bio); in squashfs_bio_read()
276 bio_uninit(bio); in squashfs_bio_read()
277 kfree(bio); in squashfs_bio_read()
294 struct bio *bio = NULL; in squashfs_read_data() local
319 res = squashfs_bio_read(sb, index, 2, &bio, &offset); in squashfs_read_data()
323 if (WARN_ON_ONCE(!bio_next_segment(bio, &iter_all))) { in squashfs_read_data()
333 if (WARN_ON_ONCE(!bio_next_segment(bio, &iter_all))) { in squashfs_read_data()
340 bio_free_pages(bio); in squashfs_read_data()
341 bio_uninit(bio); in squashfs_read_data()
342 kfree(bio); in squashfs_read_data()
360 res = squashfs_bio_read(sb, index, length, &bio, &offset); in squashfs_read_data()
369 res = msblk->thread_ops->decompress(msblk, bio, offset, length, output); in squashfs_read_data()
371 res = copy_bio_to_actor(bio, output, offset, length); in squashfs_read_data()
375 bio_free_pages(bio); in squashfs_read_data()
376 bio_uninit(bio); in squashfs_read_data()
377 kfree(bio); in squashfs_read_data()