Lines Matching refs:cb

92 		struct compressed_bio *cb)  in compression_decompress_bio()  argument
95 case BTRFS_COMPRESS_ZLIB: return zlib_decompress_bio(ws, cb); in compression_decompress_bio()
96 case BTRFS_COMPRESS_LZO: return lzo_decompress_bio(ws, cb); in compression_decompress_bio()
97 case BTRFS_COMPRESS_ZSTD: return zstd_decompress_bio(ws, cb); in compression_decompress_bio()
129 static int btrfs_decompress_bio(struct compressed_bio *cb);
150 struct compressed_bio *cb = bio->bi_private; in check_compressed_csum() local
151 u8 *cb_sum = cb->sums; in check_compressed_csum()
158 for (i = 0; i < cb->nr_pages; i++) { in check_compressed_csum()
159 page = cb->compressed_pages[i]; in check_compressed_csum()
167 csum, cb_sum, cb->mirror_num); in check_compressed_csum()
191 struct compressed_bio *cb = bio->bi_private; in end_compressed_bio_read() local
199 cb->errors = 1; in end_compressed_bio_read()
204 if (!refcount_dec_and_test(&cb->pending_bios)) in end_compressed_bio_read()
211 btrfs_io_bio(cb->orig_bio)->mirror_num = mirror; in end_compressed_bio_read()
212 cb->mirror_num = mirror; in end_compressed_bio_read()
218 if (cb->errors == 1) in end_compressed_bio_read()
221 inode = cb->inode; in end_compressed_bio_read()
230 ret = btrfs_decompress_bio(cb); in end_compressed_bio_read()
234 cb->errors = 1; in end_compressed_bio_read()
238 for (index = 0; index < cb->nr_pages; index++) { in end_compressed_bio_read()
239 page = cb->compressed_pages[index]; in end_compressed_bio_read()
245 if (cb->errors) { in end_compressed_bio_read()
246 bio_io_error(cb->orig_bio); in end_compressed_bio_read()
256 bio_for_each_segment_all(bvec, cb->orig_bio, iter_all) in end_compressed_bio_read()
259 bio_endio(cb->orig_bio); in end_compressed_bio_read()
263 kfree(cb->compressed_pages); in end_compressed_bio_read()
264 kfree(cb); in end_compressed_bio_read()
274 const struct compressed_bio *cb) in end_compressed_writeback() argument
276 unsigned long index = cb->start >> PAGE_SHIFT; in end_compressed_writeback()
277 unsigned long end_index = (cb->start + cb->len - 1) >> PAGE_SHIFT; in end_compressed_writeback()
283 if (cb->errors) in end_compressed_writeback()
296 if (cb->errors) in end_compressed_writeback()
317 struct compressed_bio *cb = bio->bi_private; in end_compressed_bio_write() local
323 cb->errors = 1; in end_compressed_bio_write()
328 if (!refcount_dec_and_test(&cb->pending_bios)) in end_compressed_bio_write()
334 inode = cb->inode; in end_compressed_bio_write()
335 cb->compressed_pages[0]->mapping = cb->inode->i_mapping; in end_compressed_bio_write()
336 btrfs_writepage_endio_finish_ordered(cb->compressed_pages[0], in end_compressed_bio_write()
337 cb->start, cb->start + cb->len - 1, in end_compressed_bio_write()
339 cb->compressed_pages[0]->mapping = NULL; in end_compressed_bio_write()
341 end_compressed_writeback(inode, cb); in end_compressed_bio_write()
349 for (index = 0; index < cb->nr_pages; index++) { in end_compressed_bio_write()
350 page = cb->compressed_pages[index]; in end_compressed_bio_write()
356 kfree(cb->compressed_pages); in end_compressed_bio_write()
357 kfree(cb); in end_compressed_bio_write()
381 struct compressed_bio *cb; in btrfs_submit_compressed_write() local
390 cb = kmalloc(compressed_bio_size(fs_info, compressed_len), GFP_NOFS); in btrfs_submit_compressed_write()
391 if (!cb) in btrfs_submit_compressed_write()
393 refcount_set(&cb->pending_bios, 0); in btrfs_submit_compressed_write()
394 cb->errors = 0; in btrfs_submit_compressed_write()
395 cb->inode = &inode->vfs_inode; in btrfs_submit_compressed_write()
396 cb->start = start; in btrfs_submit_compressed_write()
397 cb->len = len; in btrfs_submit_compressed_write()
398 cb->mirror_num = 0; in btrfs_submit_compressed_write()
399 cb->compressed_pages = compressed_pages; in btrfs_submit_compressed_write()
400 cb->compressed_len = compressed_len; in btrfs_submit_compressed_write()
401 cb->orig_bio = NULL; in btrfs_submit_compressed_write()
402 cb->nr_pages = nr_pages; in btrfs_submit_compressed_write()
406 bio->bi_private = cb; in btrfs_submit_compressed_write()
413 refcount_set(&cb->pending_bios, 1); in btrfs_submit_compressed_write()
417 for (pg_index = 0; pg_index < cb->nr_pages; pg_index++) { in btrfs_submit_compressed_write()
435 refcount_inc(&cb->pending_bios); in btrfs_submit_compressed_write()
453 bio->bi_private = cb; in btrfs_submit_compressed_write()
462 bytes_left, cb->compressed_len, cb->nr_pages); in btrfs_submit_compressed_write()
498 struct compressed_bio *cb) in add_ra_bio_pages() argument
514 last_offset = bio_end_offset(cb->orig_bio); in add_ra_bio_pages()
562 (em->block_start >> 9) != cb->orig_bio->bi_iter.bi_sector) { in add_ra_bio_pages()
585 ret = bio_add_page(cb->orig_bio, page, in add_ra_bio_pages()
619 struct compressed_bio *cb; in btrfs_submit_compressed_read() local
646 cb = kmalloc(compressed_bio_size(fs_info, compressed_len), GFP_NOFS); in btrfs_submit_compressed_read()
647 if (!cb) in btrfs_submit_compressed_read()
650 refcount_set(&cb->pending_bios, 0); in btrfs_submit_compressed_read()
651 cb->errors = 0; in btrfs_submit_compressed_read()
652 cb->inode = inode; in btrfs_submit_compressed_read()
653 cb->mirror_num = mirror_num; in btrfs_submit_compressed_read()
654 sums = cb->sums; in btrfs_submit_compressed_read()
656 cb->start = em->orig_start; in btrfs_submit_compressed_read()
663 cb->len = bio->bi_iter.bi_size; in btrfs_submit_compressed_read()
664 cb->compressed_len = compressed_len; in btrfs_submit_compressed_read()
665 cb->compress_type = extent_compress_type(bio_flags); in btrfs_submit_compressed_read()
666 cb->orig_bio = bio; in btrfs_submit_compressed_read()
669 cb->compressed_pages = kcalloc(nr_pages, sizeof(struct page *), in btrfs_submit_compressed_read()
671 if (!cb->compressed_pages) in btrfs_submit_compressed_read()
675 cb->compressed_pages[pg_index] = alloc_page(GFP_NOFS | in btrfs_submit_compressed_read()
677 if (!cb->compressed_pages[pg_index]) { in btrfs_submit_compressed_read()
684 cb->nr_pages = nr_pages; in btrfs_submit_compressed_read()
686 add_ra_bio_pages(inode, em_start + em_len, cb); in btrfs_submit_compressed_read()
689 cb->len = bio->bi_iter.bi_size; in btrfs_submit_compressed_read()
693 comp_bio->bi_private = cb; in btrfs_submit_compressed_read()
695 refcount_set(&cb->pending_bios, 1); in btrfs_submit_compressed_read()
700 page = cb->compressed_pages[pg_index]; in btrfs_submit_compressed_read()
723 refcount_inc(&cb->pending_bios); in btrfs_submit_compressed_read()
743 comp_bio->bi_private = cb; in btrfs_submit_compressed_read()
769 __free_page(cb->compressed_pages[faili]); in btrfs_submit_compressed_read()
773 kfree(cb->compressed_pages); in btrfs_submit_compressed_read()
775 kfree(cb); in btrfs_submit_compressed_read()
1177 static int btrfs_decompress_bio(struct compressed_bio *cb) in btrfs_decompress_bio() argument
1181 int type = cb->compress_type; in btrfs_decompress_bio()
1184 ret = compression_decompress_bio(type, workspace, cb); in btrfs_decompress_bio()