Lines Matching refs:btrfs_raid_bio
61 struct btrfs_raid_bio { struct
177 static int __raid56_parity_recover(struct btrfs_raid_bio *rbio); argument
178 static noinline void finish_rmw(struct btrfs_raid_bio *rbio);
181 static int fail_bio_stripe(struct btrfs_raid_bio *rbio, struct bio *bio);
182 static int fail_rbio_index(struct btrfs_raid_bio *rbio, int failed);
183 static void __free_raid_bio(struct btrfs_raid_bio *rbio);
184 static void index_rbio_pages(struct btrfs_raid_bio *rbio);
185 static int alloc_rbio_pages(struct btrfs_raid_bio *rbio);
187 static noinline void finish_parity_scrub(struct btrfs_raid_bio *rbio,
191 static void start_async_work(struct btrfs_raid_bio *rbio, btrfs_func_t work_func) in start_async_work()
250 static void cache_rbio_pages(struct btrfs_raid_bio *rbio) in cache_rbio_pages()
280 static int rbio_bucket(struct btrfs_raid_bio *rbio) in rbio_bucket()
299 static void steal_rbio(struct btrfs_raid_bio *src, struct btrfs_raid_bio *dest) in steal_rbio()
330 static void merge_rbio(struct btrfs_raid_bio *dest, in merge_rbio()
331 struct btrfs_raid_bio *victim) in merge_rbio()
343 static void __remove_rbio_from_cache(struct btrfs_raid_bio *rbio) in __remove_rbio_from_cache()
403 static void remove_rbio_from_cache(struct btrfs_raid_bio *rbio) in remove_rbio_from_cache()
425 struct btrfs_raid_bio *rbio; in btrfs_clear_rbio_cache()
432 struct btrfs_raid_bio, in btrfs_clear_rbio_cache()
463 static void cache_rbio(struct btrfs_raid_bio *rbio) in cache_rbio()
490 struct btrfs_raid_bio *found; in cache_rbio()
493 struct btrfs_raid_bio, in cache_rbio()
527 static int rbio_is_full(struct btrfs_raid_bio *rbio) in rbio_is_full()
552 static int rbio_can_merge(struct btrfs_raid_bio *last, in rbio_can_merge()
553 struct btrfs_raid_bio *cur) in rbio_can_merge()
613 static int rbio_stripe_page_index(struct btrfs_raid_bio *rbio, int stripe, in rbio_stripe_page_index()
623 static struct page *rbio_stripe_page(struct btrfs_raid_bio *rbio, int stripe, in rbio_stripe_page()
632 static struct page *rbio_pstripe_page(struct btrfs_raid_bio *rbio, int index) in rbio_pstripe_page()
641 static struct page *rbio_qstripe_page(struct btrfs_raid_bio *rbio, int index) in rbio_qstripe_page()
670 static noinline int lock_stripe_add(struct btrfs_raid_bio *rbio) in lock_stripe_add()
673 struct btrfs_raid_bio *cur; in lock_stripe_add()
674 struct btrfs_raid_bio *pending; in lock_stripe_add()
676 struct btrfs_raid_bio *freeit = NULL; in lock_stripe_add()
677 struct btrfs_raid_bio *cache_drop = NULL; in lock_stripe_add()
754 static noinline void unlock_stripe(struct btrfs_raid_bio *rbio) in unlock_stripe()
793 struct btrfs_raid_bio *next; in unlock_stripe()
796 next = list_entry(head, struct btrfs_raid_bio, in unlock_stripe()
831 static void __free_raid_bio(struct btrfs_raid_bio *rbio) in __free_raid_bio()
870 static void rbio_orig_end_io(struct btrfs_raid_bio *rbio, blk_status_t err) in rbio_orig_end_io()
901 struct btrfs_raid_bio *rbio = bio->bi_private; in raid_write_end_io()
940 static struct page *page_in_rbio(struct btrfs_raid_bio *rbio, in page_in_rbio()
971 static struct btrfs_raid_bio *alloc_rbio(struct btrfs_fs_info *fs_info, in alloc_rbio()
975 struct btrfs_raid_bio *rbio; in alloc_rbio()
1038 static int alloc_rbio_pages(struct btrfs_raid_bio *rbio) in alloc_rbio_pages()
1055 static int alloc_rbio_parity_pages(struct btrfs_raid_bio *rbio) in alloc_rbio_parity_pages()
1078 static int rbio_add_io_page(struct btrfs_raid_bio *rbio, in rbio_add_io_page()
1135 static void validate_rbio_for_rmw(struct btrfs_raid_bio *rbio) in validate_rbio_for_rmw()
1153 static void index_rbio_pages(struct btrfs_raid_bio *rbio) in index_rbio_pages()
1189 static noinline void finish_rmw(struct btrfs_raid_bio *rbio) in finish_rmw()
1348 static int find_bio_stripe(struct btrfs_raid_bio *rbio, in find_bio_stripe()
1374 static int find_logical_bio_stripe(struct btrfs_raid_bio *rbio, in find_logical_bio_stripe()
1392 static int fail_rbio_index(struct btrfs_raid_bio *rbio, int failed) in fail_rbio_index()
1424 static int fail_bio_stripe(struct btrfs_raid_bio *rbio, in fail_bio_stripe()
1460 struct btrfs_raid_bio *rbio = bio->bi_private; in raid_rmw_end_io()
1492 static int raid56_rmw_stripe(struct btrfs_raid_bio *rbio) in raid56_rmw_stripe()
1587 static int full_stripe_write(struct btrfs_raid_bio *rbio) in full_stripe_write()
1608 static int partial_stripe_write(struct btrfs_raid_bio *rbio) in partial_stripe_write()
1624 static int __raid56_parity_write(struct btrfs_raid_bio *rbio) in __raid56_parity_write()
1651 struct btrfs_raid_bio *ra = container_of(a, struct btrfs_raid_bio, in plug_cmp()
1653 struct btrfs_raid_bio *rb = container_of(b, struct btrfs_raid_bio, in plug_cmp()
1667 struct btrfs_raid_bio *cur; in run_plug()
1668 struct btrfs_raid_bio *last = NULL; in run_plug()
1678 struct btrfs_raid_bio, plug_list); in run_plug()
1737 struct btrfs_raid_bio *rbio; in raid56_parity_write()
1787 static void __raid_recover_end_io(struct btrfs_raid_bio *rbio) in __raid_recover_end_io()
2001 struct btrfs_raid_bio *rbio = bio->bi_private; in raid_recover_end_io()
2030 static int __raid56_parity_recover(struct btrfs_raid_bio *rbio) in __raid56_parity_recover()
2130 struct btrfs_raid_bio *rbio; in raid56_parity_recover()
2207 struct btrfs_raid_bio *rbio; in rmw_work()
2209 rbio = container_of(work, struct btrfs_raid_bio, work); in rmw_work()
2215 struct btrfs_raid_bio *rbio; in read_rebuild_work()
2217 rbio = container_of(work, struct btrfs_raid_bio, work); in read_rebuild_work()
2231 struct btrfs_raid_bio *
2237 struct btrfs_raid_bio *rbio; in raid56_parity_alloc_scrub_rbio()
2279 void raid56_add_scrub_pages(struct btrfs_raid_bio *rbio, struct page *page, in raid56_add_scrub_pages()
2297 static int alloc_rbio_essential_pages(struct btrfs_raid_bio *rbio) in alloc_rbio_essential_pages()
2319 static noinline void finish_parity_scrub(struct btrfs_raid_bio *rbio, in finish_parity_scrub()
2478 static inline int is_data_stripe(struct btrfs_raid_bio *rbio, int stripe) in is_data_stripe()
2492 static void validate_rbio_for_parity_scrub(struct btrfs_raid_bio *rbio) in validate_rbio_for_parity_scrub()
2556 struct btrfs_raid_bio *rbio = bio->bi_private; in raid56_parity_scrub_end_io()
2576 static void raid56_parity_scrub_stripe(struct btrfs_raid_bio *rbio) in raid56_parity_scrub_stripe()
2666 struct btrfs_raid_bio *rbio; in scrub_parity_work()
2668 rbio = container_of(work, struct btrfs_raid_bio, work); in scrub_parity_work()
2672 void raid56_parity_submit_scrub_rbio(struct btrfs_raid_bio *rbio) in raid56_parity_submit_scrub_rbio()
2680 struct btrfs_raid_bio *
2684 struct btrfs_raid_bio *rbio; in raid56_alloc_missing_rbio()
2714 void raid56_submit_missing_rbio(struct btrfs_raid_bio *rbio) in raid56_submit_missing_rbio()