Lines Matching refs:cb
104 struct compressed_bio *cb, in check_compressed_csum() argument
112 u32 *cb_sum = &cb->sums; in check_compressed_csum()
117 for (i = 0; i < cb->nr_pages; i++) { in check_compressed_csum()
118 page = cb->compressed_pages[i]; in check_compressed_csum()
130 cb->mirror_num); in check_compressed_csum()
154 struct compressed_bio *cb = bio->bi_private; in end_compressed_bio_read() local
161 cb->errors = 1; in end_compressed_bio_read()
166 if (!atomic_dec_and_test(&cb->pending_bios)) in end_compressed_bio_read()
169 inode = cb->inode; in end_compressed_bio_read()
170 ret = check_compressed_csum(inode, cb, in end_compressed_bio_read()
178 ret = btrfs_decompress_biovec(cb->compress_type, in end_compressed_bio_read()
179 cb->compressed_pages, in end_compressed_bio_read()
180 cb->start, in end_compressed_bio_read()
181 cb->orig_bio->bi_io_vec, in end_compressed_bio_read()
182 cb->orig_bio->bi_vcnt, in end_compressed_bio_read()
183 cb->compressed_len); in end_compressed_bio_read()
186 cb->errors = 1; in end_compressed_bio_read()
190 for (index = 0; index < cb->nr_pages; index++) { in end_compressed_bio_read()
191 page = cb->compressed_pages[index]; in end_compressed_bio_read()
197 if (cb->errors) { in end_compressed_bio_read()
198 bio_io_error(cb->orig_bio); in end_compressed_bio_read()
207 bio_for_each_segment_all(bvec, cb->orig_bio, i) in end_compressed_bio_read()
210 bio_endio(cb->orig_bio); in end_compressed_bio_read()
214 kfree(cb->compressed_pages); in end_compressed_bio_read()
215 kfree(cb); in end_compressed_bio_read()
225 const struct compressed_bio *cb) in end_compressed_writeback() argument
227 unsigned long index = cb->start >> PAGE_SHIFT; in end_compressed_writeback()
228 unsigned long end_index = (cb->start + cb->len - 1) >> PAGE_SHIFT; in end_compressed_writeback()
234 if (cb->errors) in end_compressed_writeback()
247 if (cb->errors) in end_compressed_writeback()
269 struct compressed_bio *cb = bio->bi_private; in end_compressed_bio_write() local
275 cb->errors = 1; in end_compressed_bio_write()
280 if (!atomic_dec_and_test(&cb->pending_bios)) in end_compressed_bio_write()
286 inode = cb->inode; in end_compressed_bio_write()
288 cb->compressed_pages[0]->mapping = cb->inode->i_mapping; in end_compressed_bio_write()
289 tree->ops->writepage_end_io_hook(cb->compressed_pages[0], in end_compressed_bio_write()
290 cb->start, in end_compressed_bio_write()
291 cb->start + cb->len - 1, in end_compressed_bio_write()
294 cb->compressed_pages[0]->mapping = NULL; in end_compressed_bio_write()
296 end_compressed_writeback(inode, cb); in end_compressed_bio_write()
304 for (index = 0; index < cb->nr_pages; index++) { in end_compressed_bio_write()
305 page = cb->compressed_pages[index]; in end_compressed_bio_write()
311 kfree(cb->compressed_pages); in end_compressed_bio_write()
312 kfree(cb); in end_compressed_bio_write()
334 struct compressed_bio *cb; in btrfs_submit_compressed_write() local
345 cb = kmalloc(compressed_bio_size(root, compressed_len), GFP_NOFS); in btrfs_submit_compressed_write()
346 if (!cb) in btrfs_submit_compressed_write()
348 atomic_set(&cb->pending_bios, 0); in btrfs_submit_compressed_write()
349 cb->errors = 0; in btrfs_submit_compressed_write()
350 cb->inode = inode; in btrfs_submit_compressed_write()
351 cb->start = start; in btrfs_submit_compressed_write()
352 cb->len = len; in btrfs_submit_compressed_write()
353 cb->mirror_num = 0; in btrfs_submit_compressed_write()
354 cb->compressed_pages = compressed_pages; in btrfs_submit_compressed_write()
355 cb->compressed_len = compressed_len; in btrfs_submit_compressed_write()
356 cb->orig_bio = NULL; in btrfs_submit_compressed_write()
357 cb->nr_pages = nr_pages; in btrfs_submit_compressed_write()
363 kfree(cb); in btrfs_submit_compressed_write()
367 bio->bi_private = cb; in btrfs_submit_compressed_write()
369 atomic_inc(&cb->pending_bios); in btrfs_submit_compressed_write()
373 for (pg_index = 0; pg_index < cb->nr_pages; pg_index++) { in btrfs_submit_compressed_write()
394 atomic_inc(&cb->pending_bios); in btrfs_submit_compressed_write()
416 bio->bi_private = cb; in btrfs_submit_compressed_write()
423 bytes_left, cb->compressed_len, cb->nr_pages); in btrfs_submit_compressed_write()
451 struct compressed_bio *cb) in add_ra_bio_pages() argument
467 page = cb->orig_bio->bi_io_vec[cb->orig_bio->bi_vcnt - 1].bv_page; in add_ra_bio_pages()
518 (em->block_start >> 9) != cb->orig_bio->bi_iter.bi_sector) { in add_ra_bio_pages()
541 ret = bio_add_page(cb->orig_bio, page, in add_ra_bio_pages()
576 struct compressed_bio *cb; in btrfs_submit_compressed_read() local
606 cb = kmalloc(compressed_bio_size(root, compressed_len), GFP_NOFS); in btrfs_submit_compressed_read()
607 if (!cb) in btrfs_submit_compressed_read()
610 atomic_set(&cb->pending_bios, 0); in btrfs_submit_compressed_read()
611 cb->errors = 0; in btrfs_submit_compressed_read()
612 cb->inode = inode; in btrfs_submit_compressed_read()
613 cb->mirror_num = mirror_num; in btrfs_submit_compressed_read()
614 sums = &cb->sums; in btrfs_submit_compressed_read()
616 cb->start = em->orig_start; in btrfs_submit_compressed_read()
623 cb->len = uncompressed_len; in btrfs_submit_compressed_read()
624 cb->compressed_len = compressed_len; in btrfs_submit_compressed_read()
625 cb->compress_type = extent_compress_type(bio_flags); in btrfs_submit_compressed_read()
626 cb->orig_bio = bio; in btrfs_submit_compressed_read()
629 cb->compressed_pages = kcalloc(nr_pages, sizeof(struct page *), in btrfs_submit_compressed_read()
631 if (!cb->compressed_pages) in btrfs_submit_compressed_read()
637 cb->compressed_pages[pg_index] = alloc_page(GFP_NOFS | in btrfs_submit_compressed_read()
639 if (!cb->compressed_pages[pg_index]) { in btrfs_submit_compressed_read()
646 cb->nr_pages = nr_pages; in btrfs_submit_compressed_read()
648 add_ra_bio_pages(inode, em_start + em_len, cb); in btrfs_submit_compressed_read()
652 cb->len = uncompressed_len; in btrfs_submit_compressed_read()
658 comp_bio->bi_private = cb; in btrfs_submit_compressed_read()
660 atomic_inc(&cb->pending_bios); in btrfs_submit_compressed_read()
663 page = cb->compressed_pages[pg_index]; in btrfs_submit_compressed_read()
689 atomic_inc(&cb->pending_bios); in btrfs_submit_compressed_read()
711 comp_bio->bi_private = cb; in btrfs_submit_compressed_read()
740 __free_page(cb->compressed_pages[faili]); in btrfs_submit_compressed_read()
744 kfree(cb->compressed_pages); in btrfs_submit_compressed_read()
746 kfree(cb); in btrfs_submit_compressed_read()