Lines Matching refs:cb

63 static int btrfs_decompress_bio(struct compressed_bio *cb);
75 struct compressed_bio *cb, in check_compressed_csum() argument
86 u8 *cb_sum = cb->sums; in check_compressed_csum()
93 for (i = 0; i < cb->nr_pages; i++) { in check_compressed_csum()
94 page = cb->compressed_pages[i]; in check_compressed_csum()
104 csum, cb_sum, cb->mirror_num); in check_compressed_csum()
128 struct compressed_bio *cb = bio->bi_private; in end_compressed_bio_read() local
136 cb->errors = 1; in end_compressed_bio_read()
141 if (!refcount_dec_and_test(&cb->pending_bios)) in end_compressed_bio_read()
148 ASSERT(btrfs_io_bio(cb->orig_bio)); in end_compressed_bio_read()
149 btrfs_io_bio(cb->orig_bio)->mirror_num = mirror; in end_compressed_bio_read()
150 cb->mirror_num = mirror; in end_compressed_bio_read()
156 if (cb->errors == 1) in end_compressed_bio_read()
159 inode = cb->inode; in end_compressed_bio_read()
160 ret = check_compressed_csum(BTRFS_I(inode), cb, in end_compressed_bio_read()
168 ret = btrfs_decompress_bio(cb); in end_compressed_bio_read()
172 cb->errors = 1; in end_compressed_bio_read()
176 for (index = 0; index < cb->nr_pages; index++) { in end_compressed_bio_read()
177 page = cb->compressed_pages[index]; in end_compressed_bio_read()
183 if (cb->errors) { in end_compressed_bio_read()
184 bio_io_error(cb->orig_bio); in end_compressed_bio_read()
194 bio_for_each_segment_all(bvec, cb->orig_bio, iter_all) in end_compressed_bio_read()
197 bio_endio(cb->orig_bio); in end_compressed_bio_read()
201 kfree(cb->compressed_pages); in end_compressed_bio_read()
202 kfree(cb); in end_compressed_bio_read()
212 const struct compressed_bio *cb) in end_compressed_writeback() argument
214 unsigned long index = cb->start >> PAGE_SHIFT; in end_compressed_writeback()
215 unsigned long end_index = (cb->start + cb->len - 1) >> PAGE_SHIFT; in end_compressed_writeback()
221 if (cb->errors) in end_compressed_writeback()
234 if (cb->errors) in end_compressed_writeback()
255 struct compressed_bio *cb = bio->bi_private; in end_compressed_bio_write() local
261 cb->errors = 1; in end_compressed_bio_write()
266 if (!refcount_dec_and_test(&cb->pending_bios)) in end_compressed_bio_write()
272 inode = cb->inode; in end_compressed_bio_write()
273 cb->compressed_pages[0]->mapping = cb->inode->i_mapping; in end_compressed_bio_write()
274 btrfs_writepage_endio_finish_ordered(cb->compressed_pages[0], in end_compressed_bio_write()
275 cb->start, cb->start + cb->len - 1, in end_compressed_bio_write()
277 cb->compressed_pages[0]->mapping = NULL; in end_compressed_bio_write()
279 end_compressed_writeback(inode, cb); in end_compressed_bio_write()
287 for (index = 0; index < cb->nr_pages; index++) { in end_compressed_bio_write()
288 page = cb->compressed_pages[index]; in end_compressed_bio_write()
294 kfree(cb->compressed_pages); in end_compressed_bio_write()
295 kfree(cb); in end_compressed_bio_write()
318 struct compressed_bio *cb; in btrfs_submit_compressed_write() local
328 cb = kmalloc(compressed_bio_size(fs_info, compressed_len), GFP_NOFS); in btrfs_submit_compressed_write()
329 if (!cb) in btrfs_submit_compressed_write()
331 refcount_set(&cb->pending_bios, 0); in btrfs_submit_compressed_write()
332 cb->errors = 0; in btrfs_submit_compressed_write()
333 cb->inode = inode; in btrfs_submit_compressed_write()
334 cb->start = start; in btrfs_submit_compressed_write()
335 cb->len = len; in btrfs_submit_compressed_write()
336 cb->mirror_num = 0; in btrfs_submit_compressed_write()
337 cb->compressed_pages = compressed_pages; in btrfs_submit_compressed_write()
338 cb->compressed_len = compressed_len; in btrfs_submit_compressed_write()
339 cb->orig_bio = NULL; in btrfs_submit_compressed_write()
340 cb->nr_pages = nr_pages; in btrfs_submit_compressed_write()
347 bio->bi_private = cb; in btrfs_submit_compressed_write()
349 refcount_set(&cb->pending_bios, 1); in btrfs_submit_compressed_write()
353 for (pg_index = 0; pg_index < cb->nr_pages; pg_index++) { in btrfs_submit_compressed_write()
371 refcount_inc(&cb->pending_bios); in btrfs_submit_compressed_write()
390 bio->bi_private = cb; in btrfs_submit_compressed_write()
397 bytes_left, cb->compressed_len, cb->nr_pages); in btrfs_submit_compressed_write()
430 struct compressed_bio *cb) in add_ra_bio_pages() argument
446 last_offset = bio_end_offset(cb->orig_bio); in add_ra_bio_pages()
494 (em->block_start >> 9) != cb->orig_bio->bi_iter.bi_sector) { in add_ra_bio_pages()
517 ret = bio_add_page(cb->orig_bio, page, in add_ra_bio_pages()
551 struct compressed_bio *cb; in btrfs_submit_compressed_read() local
579 cb = kmalloc(compressed_bio_size(fs_info, compressed_len), GFP_NOFS); in btrfs_submit_compressed_read()
580 if (!cb) in btrfs_submit_compressed_read()
583 refcount_set(&cb->pending_bios, 0); in btrfs_submit_compressed_read()
584 cb->errors = 0; in btrfs_submit_compressed_read()
585 cb->inode = inode; in btrfs_submit_compressed_read()
586 cb->mirror_num = mirror_num; in btrfs_submit_compressed_read()
587 sums = cb->sums; in btrfs_submit_compressed_read()
589 cb->start = em->orig_start; in btrfs_submit_compressed_read()
596 cb->len = bio->bi_iter.bi_size; in btrfs_submit_compressed_read()
597 cb->compressed_len = compressed_len; in btrfs_submit_compressed_read()
598 cb->compress_type = extent_compress_type(bio_flags); in btrfs_submit_compressed_read()
599 cb->orig_bio = bio; in btrfs_submit_compressed_read()
602 cb->compressed_pages = kcalloc(nr_pages, sizeof(struct page *), in btrfs_submit_compressed_read()
604 if (!cb->compressed_pages) in btrfs_submit_compressed_read()
610 cb->compressed_pages[pg_index] = alloc_page(GFP_NOFS | in btrfs_submit_compressed_read()
612 if (!cb->compressed_pages[pg_index]) { in btrfs_submit_compressed_read()
619 cb->nr_pages = nr_pages; in btrfs_submit_compressed_read()
621 add_ra_bio_pages(inode, em_start + em_len, cb); in btrfs_submit_compressed_read()
624 cb->len = bio->bi_iter.bi_size; in btrfs_submit_compressed_read()
629 comp_bio->bi_private = cb; in btrfs_submit_compressed_read()
631 refcount_set(&cb->pending_bios, 1); in btrfs_submit_compressed_read()
636 page = cb->compressed_pages[pg_index]; in btrfs_submit_compressed_read()
659 refcount_inc(&cb->pending_bios); in btrfs_submit_compressed_read()
680 comp_bio->bi_private = cb; in btrfs_submit_compressed_read()
706 __free_page(cb->compressed_pages[faili]); in btrfs_submit_compressed_read()
710 kfree(cb->compressed_pages); in btrfs_submit_compressed_read()
712 kfree(cb); in btrfs_submit_compressed_read()
1067 static int btrfs_decompress_bio(struct compressed_bio *cb) in btrfs_decompress_bio() argument
1071 int type = cb->compress_type; in btrfs_decompress_bio()
1074 ret = btrfs_compress_op[type]->decompress_bio(workspace, cb); in btrfs_decompress_bio()