Lines Matching refs:btrfs_raid_bio
45 struct btrfs_raid_bio { struct
161 static int __raid56_parity_recover(struct btrfs_raid_bio *rbio); argument
162 static noinline void finish_rmw(struct btrfs_raid_bio *rbio);
165 static int fail_bio_stripe(struct btrfs_raid_bio *rbio, struct bio *bio);
166 static int fail_rbio_index(struct btrfs_raid_bio *rbio, int failed);
167 static void __free_raid_bio(struct btrfs_raid_bio *rbio);
168 static void index_rbio_pages(struct btrfs_raid_bio *rbio);
169 static int alloc_rbio_pages(struct btrfs_raid_bio *rbio);
171 static noinline void finish_parity_scrub(struct btrfs_raid_bio *rbio,
175 static void start_async_work(struct btrfs_raid_bio *rbio, btrfs_func_t work_func) in start_async_work()
236 static void cache_rbio_pages(struct btrfs_raid_bio *rbio) in cache_rbio_pages()
266 static int rbio_bucket(struct btrfs_raid_bio *rbio) in rbio_bucket()
285 static void steal_rbio(struct btrfs_raid_bio *src, struct btrfs_raid_bio *dest) in steal_rbio()
316 static void merge_rbio(struct btrfs_raid_bio *dest, in merge_rbio()
317 struct btrfs_raid_bio *victim) in merge_rbio()
329 static void __remove_rbio_from_cache(struct btrfs_raid_bio *rbio) in __remove_rbio_from_cache()
389 static void remove_rbio_from_cache(struct btrfs_raid_bio *rbio) in remove_rbio_from_cache()
411 struct btrfs_raid_bio *rbio; in btrfs_clear_rbio_cache()
418 struct btrfs_raid_bio, in btrfs_clear_rbio_cache()
449 static void cache_rbio(struct btrfs_raid_bio *rbio) in cache_rbio()
476 struct btrfs_raid_bio *found; in cache_rbio()
479 struct btrfs_raid_bio, in cache_rbio()
513 static int rbio_is_full(struct btrfs_raid_bio *rbio) in rbio_is_full()
538 static int rbio_can_merge(struct btrfs_raid_bio *last, in rbio_can_merge()
539 struct btrfs_raid_bio *cur) in rbio_can_merge()
599 static int rbio_stripe_page_index(struct btrfs_raid_bio *rbio, int stripe, in rbio_stripe_page_index()
609 static struct page *rbio_stripe_page(struct btrfs_raid_bio *rbio, int stripe, in rbio_stripe_page()
618 static struct page *rbio_pstripe_page(struct btrfs_raid_bio *rbio, int index) in rbio_pstripe_page()
627 static struct page *rbio_qstripe_page(struct btrfs_raid_bio *rbio, int index) in rbio_qstripe_page()
656 static noinline int lock_stripe_add(struct btrfs_raid_bio *rbio) in lock_stripe_add()
660 struct btrfs_raid_bio *cur; in lock_stripe_add()
661 struct btrfs_raid_bio *pending; in lock_stripe_add()
663 struct btrfs_raid_bio *freeit = NULL; in lock_stripe_add()
664 struct btrfs_raid_bio *cache_drop = NULL; in lock_stripe_add()
742 static noinline void unlock_stripe(struct btrfs_raid_bio *rbio) in unlock_stripe()
781 struct btrfs_raid_bio *next; in unlock_stripe()
784 next = list_entry(head, struct btrfs_raid_bio, in unlock_stripe()
819 static void __free_raid_bio(struct btrfs_raid_bio *rbio) in __free_raid_bio()
858 static void rbio_orig_end_io(struct btrfs_raid_bio *rbio, blk_status_t err) in rbio_orig_end_io()
889 struct btrfs_raid_bio *rbio = bio->bi_private; in raid_write_end_io()
928 static struct page *page_in_rbio(struct btrfs_raid_bio *rbio, in page_in_rbio()
959 static struct btrfs_raid_bio *alloc_rbio(struct btrfs_fs_info *fs_info, in alloc_rbio()
963 struct btrfs_raid_bio *rbio; in alloc_rbio()
1026 static int alloc_rbio_pages(struct btrfs_raid_bio *rbio) in alloc_rbio_pages()
1043 static int alloc_rbio_parity_pages(struct btrfs_raid_bio *rbio) in alloc_rbio_parity_pages()
1066 static int rbio_add_io_page(struct btrfs_raid_bio *rbio, in rbio_add_io_page()
1124 static void validate_rbio_for_rmw(struct btrfs_raid_bio *rbio) in validate_rbio_for_rmw()
1142 static void index_rbio_pages(struct btrfs_raid_bio *rbio) in index_rbio_pages()
1178 static noinline void finish_rmw(struct btrfs_raid_bio *rbio) in finish_rmw()
1344 static int find_bio_stripe(struct btrfs_raid_bio *rbio, in find_bio_stripe()
1373 static int find_logical_bio_stripe(struct btrfs_raid_bio *rbio, in find_logical_bio_stripe()
1395 static int fail_rbio_index(struct btrfs_raid_bio *rbio, int failed) in fail_rbio_index()
1427 static int fail_bio_stripe(struct btrfs_raid_bio *rbio, in fail_bio_stripe()
1463 struct btrfs_raid_bio *rbio = bio->bi_private; in raid_rmw_end_io()
1495 static int raid56_rmw_stripe(struct btrfs_raid_bio *rbio) in raid56_rmw_stripe()
1594 static int full_stripe_write(struct btrfs_raid_bio *rbio) in full_stripe_write()
1615 static int partial_stripe_write(struct btrfs_raid_bio *rbio) in partial_stripe_write()
1631 static int __raid56_parity_write(struct btrfs_raid_bio *rbio) in __raid56_parity_write()
1658 struct btrfs_raid_bio *ra = container_of(a, struct btrfs_raid_bio, in plug_cmp()
1660 struct btrfs_raid_bio *rb = container_of(b, struct btrfs_raid_bio, in plug_cmp()
1674 struct btrfs_raid_bio *cur; in run_plug()
1675 struct btrfs_raid_bio *last = NULL; in run_plug()
1685 struct btrfs_raid_bio, plug_list); in run_plug()
1745 struct btrfs_raid_bio *rbio; in raid56_parity_write()
1795 static void __raid_recover_end_io(struct btrfs_raid_bio *rbio) in __raid_recover_end_io()
2012 struct btrfs_raid_bio *rbio = bio->bi_private; in raid_recover_end_io()
2041 static int __raid56_parity_recover(struct btrfs_raid_bio *rbio) in __raid56_parity_recover()
2145 struct btrfs_raid_bio *rbio; in raid56_parity_recover()
2222 struct btrfs_raid_bio *rbio; in rmw_work()
2224 rbio = container_of(work, struct btrfs_raid_bio, work); in rmw_work()
2230 struct btrfs_raid_bio *rbio; in read_rebuild_work()
2232 rbio = container_of(work, struct btrfs_raid_bio, work); in read_rebuild_work()
2246 struct btrfs_raid_bio *
2252 struct btrfs_raid_bio *rbio; in raid56_parity_alloc_scrub_rbio()
2294 void raid56_add_scrub_pages(struct btrfs_raid_bio *rbio, struct page *page, in raid56_add_scrub_pages()
2312 static int alloc_rbio_essential_pages(struct btrfs_raid_bio *rbio) in alloc_rbio_essential_pages()
2334 static noinline void finish_parity_scrub(struct btrfs_raid_bio *rbio, in finish_parity_scrub()
2500 static inline int is_data_stripe(struct btrfs_raid_bio *rbio, int stripe) in is_data_stripe()
2514 static void validate_rbio_for_parity_scrub(struct btrfs_raid_bio *rbio) in validate_rbio_for_parity_scrub()
2578 struct btrfs_raid_bio *rbio = bio->bi_private; in raid56_parity_scrub_end_io()
2598 static void raid56_parity_scrub_stripe(struct btrfs_raid_bio *rbio) in raid56_parity_scrub_stripe()
2692 struct btrfs_raid_bio *rbio; in scrub_parity_work()
2694 rbio = container_of(work, struct btrfs_raid_bio, work); in scrub_parity_work()
2698 void raid56_parity_submit_scrub_rbio(struct btrfs_raid_bio *rbio) in raid56_parity_submit_scrub_rbio()
2706 struct btrfs_raid_bio *
2710 struct btrfs_raid_bio *rbio; in raid56_alloc_missing_rbio()
2740 void raid56_submit_missing_rbio(struct btrfs_raid_bio *rbio) in raid56_submit_missing_rbio()