Lines Matching refs:recover
91 struct scrub_recover *recover; member
440 return sector->recover && in scrub_is_page_on_raid56()
441 (sector->recover->bioc->map_type & BTRFS_BLOCK_GROUP_RAID56_MASK); in scrub_is_page_on_raid56()
981 static inline void scrub_get_recover(struct scrub_recover *recover) in scrub_get_recover() argument
983 refcount_inc(&recover->refs); in scrub_get_recover()
987 struct scrub_recover *recover) in scrub_put_recover() argument
989 if (refcount_dec_and_test(&recover->refs)) { in scrub_put_recover()
991 btrfs_put_bioc(recover->bioc); in scrub_put_recover()
992 kfree(recover); in scrub_put_recover()
1232 struct scrub_recover *r = sblock_bad->sectors[0]->recover; in scrub_handle_errored_block()
1393 struct scrub_recover *recover; in scrub_handle_errored_block() local
1406 recover = sblock->sectors[sector_index]->recover; in scrub_handle_errored_block()
1407 if (recover) { in scrub_handle_errored_block()
1408 scrub_put_recover(fs_info, recover); in scrub_handle_errored_block()
1409 sblock->sectors[sector_index]->recover = NULL; in scrub_handle_errored_block()
1471 struct scrub_recover *recover; in scrub_setup_recheck_block() local
1500 recover = kzalloc(sizeof(struct scrub_recover), GFP_KERNEL); in scrub_setup_recheck_block()
1501 if (!recover) { in scrub_setup_recheck_block()
1507 refcount_set(&recover->refs, 1); in scrub_setup_recheck_block()
1508 recover->bioc = bioc; in scrub_setup_recheck_block()
1509 recover->map_length = mapped_length; in scrub_setup_recheck_block()
1528 scrub_put_recover(fs_info, recover); in scrub_setup_recheck_block()
1561 scrub_get_recover(recover); in scrub_setup_recheck_block()
1562 sector->recover = recover; in scrub_setup_recheck_block()
1564 scrub_put_recover(fs_info, recover); in scrub_setup_recheck_block()
1588 raid56_parity_recover(bio, sector->recover->bioc, sector->sblock->mirror_num); in scrub_submit_raid56_bio_wait()