Lines Matching refs:cb

98 		struct compressed_bio *cb)  in compression_decompress_bio()  argument
101 case BTRFS_COMPRESS_ZLIB: return zlib_decompress_bio(ws, cb); in compression_decompress_bio()
102 case BTRFS_COMPRESS_LZO: return lzo_decompress_bio(ws, cb); in compression_decompress_bio()
103 case BTRFS_COMPRESS_ZSTD: return zstd_decompress_bio(ws, cb); in compression_decompress_bio()
135 static int btrfs_decompress_bio(struct compressed_bio *cb);
155 struct compressed_bio *cb = bio->bi_private; in check_compressed_csum() local
156 u8 *cb_sum = cb->sums; in check_compressed_csum()
163 for (i = 0; i < cb->nr_pages; i++) { in check_compressed_csum()
166 page = cb->compressed_pages[i]; in check_compressed_csum()
169 if (i == cb->nr_pages - 1) in check_compressed_csum()
170 bytes_left = cb->compressed_len - i * PAGE_SIZE; in check_compressed_csum()
182 csum, cb_sum, cb->mirror_num); in check_compressed_csum()
208 struct compressed_bio *cb = bio->bi_private; in end_compressed_bio_read() local
216 cb->errors = 1; in end_compressed_bio_read()
221 if (!refcount_dec_and_test(&cb->pending_bios)) in end_compressed_bio_read()
228 btrfs_io_bio(cb->orig_bio)->mirror_num = mirror; in end_compressed_bio_read()
229 cb->mirror_num = mirror; in end_compressed_bio_read()
235 if (cb->errors == 1) in end_compressed_bio_read()
238 inode = cb->inode; in end_compressed_bio_read()
247 ret = btrfs_decompress_bio(cb); in end_compressed_bio_read()
251 cb->errors = 1; in end_compressed_bio_read()
255 for (index = 0; index < cb->nr_pages; index++) { in end_compressed_bio_read()
256 page = cb->compressed_pages[index]; in end_compressed_bio_read()
262 if (cb->errors) { in end_compressed_bio_read()
263 bio_io_error(cb->orig_bio); in end_compressed_bio_read()
273 bio_for_each_segment_all(bvec, cb->orig_bio, iter_all) in end_compressed_bio_read()
276 bio_endio(cb->orig_bio); in end_compressed_bio_read()
280 kfree(cb->compressed_pages); in end_compressed_bio_read()
281 kfree(cb); in end_compressed_bio_read()
291 const struct compressed_bio *cb) in end_compressed_writeback() argument
293 unsigned long index = cb->start >> PAGE_SHIFT; in end_compressed_writeback()
294 unsigned long end_index = (cb->start + cb->len - 1) >> PAGE_SHIFT; in end_compressed_writeback()
300 if (cb->errors) in end_compressed_writeback()
313 if (cb->errors) in end_compressed_writeback()
334 struct compressed_bio *cb = bio->bi_private; in end_compressed_bio_write() local
340 cb->errors = 1; in end_compressed_bio_write()
345 if (!refcount_dec_and_test(&cb->pending_bios)) in end_compressed_bio_write()
351 inode = cb->inode; in end_compressed_bio_write()
352 btrfs_record_physical_zoned(inode, cb->start, bio); in end_compressed_bio_write()
354 cb->start, cb->start + cb->len - 1, in end_compressed_bio_write()
355 !cb->errors); in end_compressed_bio_write()
357 end_compressed_writeback(inode, cb); in end_compressed_bio_write()
365 for (index = 0; index < cb->nr_pages; index++) { in end_compressed_bio_write()
366 page = cb->compressed_pages[index]; in end_compressed_bio_write()
372 kfree(cb->compressed_pages); in end_compressed_bio_write()
373 kfree(cb); in end_compressed_bio_write()
397 struct compressed_bio *cb; in btrfs_submit_compressed_write() local
408 cb = kmalloc(compressed_bio_size(fs_info, compressed_len), GFP_NOFS); in btrfs_submit_compressed_write()
409 if (!cb) in btrfs_submit_compressed_write()
411 refcount_set(&cb->pending_bios, 0); in btrfs_submit_compressed_write()
412 cb->errors = 0; in btrfs_submit_compressed_write()
413 cb->inode = &inode->vfs_inode; in btrfs_submit_compressed_write()
414 cb->start = start; in btrfs_submit_compressed_write()
415 cb->len = len; in btrfs_submit_compressed_write()
416 cb->mirror_num = 0; in btrfs_submit_compressed_write()
417 cb->compressed_pages = compressed_pages; in btrfs_submit_compressed_write()
418 cb->compressed_len = compressed_len; in btrfs_submit_compressed_write()
419 cb->orig_bio = NULL; in btrfs_submit_compressed_write()
420 cb->nr_pages = nr_pages; in btrfs_submit_compressed_write()
424 bio->bi_private = cb; in btrfs_submit_compressed_write()
432 kfree(cb); in btrfs_submit_compressed_write()
444 refcount_set(&cb->pending_bios, 1); in btrfs_submit_compressed_write()
448 for (pg_index = 0; pg_index < cb->nr_pages; pg_index++) { in btrfs_submit_compressed_write()
478 refcount_inc(&cb->pending_bios); in btrfs_submit_compressed_write()
496 bio->bi_private = cb; in btrfs_submit_compressed_write()
509 bytes_left, cb->compressed_len, cb->nr_pages); in btrfs_submit_compressed_write()
545 struct compressed_bio *cb) in add_ra_bio_pages() argument
561 last_offset = bio_end_offset(cb->orig_bio); in add_ra_bio_pages()
625 (em->block_start >> 9) != cb->orig_bio->bi_iter.bi_sector) { in add_ra_bio_pages()
645 ret = bio_add_page(cb->orig_bio, page, in add_ra_bio_pages()
679 struct compressed_bio *cb; in btrfs_submit_compressed_read() local
708 cb = kmalloc(compressed_bio_size(fs_info, compressed_len), GFP_NOFS); in btrfs_submit_compressed_read()
709 if (!cb) in btrfs_submit_compressed_read()
712 refcount_set(&cb->pending_bios, 0); in btrfs_submit_compressed_read()
713 cb->errors = 0; in btrfs_submit_compressed_read()
714 cb->inode = inode; in btrfs_submit_compressed_read()
715 cb->mirror_num = mirror_num; in btrfs_submit_compressed_read()
716 sums = cb->sums; in btrfs_submit_compressed_read()
718 cb->start = em->orig_start; in btrfs_submit_compressed_read()
725 cb->len = bio->bi_iter.bi_size; in btrfs_submit_compressed_read()
726 cb->compressed_len = compressed_len; in btrfs_submit_compressed_read()
727 cb->compress_type = extent_compress_type(bio_flags); in btrfs_submit_compressed_read()
728 cb->orig_bio = bio; in btrfs_submit_compressed_read()
731 cb->compressed_pages = kcalloc(nr_pages, sizeof(struct page *), in btrfs_submit_compressed_read()
733 if (!cb->compressed_pages) in btrfs_submit_compressed_read()
737 cb->compressed_pages[pg_index] = alloc_page(GFP_NOFS); in btrfs_submit_compressed_read()
738 if (!cb->compressed_pages[pg_index]) { in btrfs_submit_compressed_read()
745 cb->nr_pages = nr_pages; in btrfs_submit_compressed_read()
747 add_ra_bio_pages(inode, em_start + em_len, cb); in btrfs_submit_compressed_read()
750 cb->len = bio->bi_iter.bi_size; in btrfs_submit_compressed_read()
754 comp_bio->bi_private = cb; in btrfs_submit_compressed_read()
756 refcount_set(&cb->pending_bios, 1); in btrfs_submit_compressed_read()
773 page = cb->compressed_pages[pg_index]; in btrfs_submit_compressed_read()
795 refcount_inc(&cb->pending_bios); in btrfs_submit_compressed_read()
812 comp_bio->bi_private = cb; in btrfs_submit_compressed_read()
836 __free_page(cb->compressed_pages[faili]); in btrfs_submit_compressed_read()
840 kfree(cb->compressed_pages); in btrfs_submit_compressed_read()
842 kfree(cb); in btrfs_submit_compressed_read()
1227 static int btrfs_decompress_bio(struct compressed_bio *cb) in btrfs_decompress_bio() argument
1231 int type = cb->compress_type; in btrfs_decompress_bio()
1234 ret = compression_decompress_bio(type, workspace, cb); in btrfs_decompress_bio()
1306 struct compressed_bio *cb, u32 decompressed) in btrfs_decompress_buf2page() argument
1308 struct bio *orig_bio = cb->orig_bio; in btrfs_decompress_buf2page()
1326 bvec_offset = page_offset(bvec.bv_page) + bvec.bv_offset - cb->start; in btrfs_decompress_buf2page()