aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/raid56.c
AgeCommit message (Expand)AuthorFilesLines
2025-11-25btrfs: raid56: remove the "_step" infixQu Wenruo1-16/+16
2025-11-25btrfs: raid56: enable bs > ps supportQu Wenruo1-5/+6
2025-11-25btrfs: raid56: prepare finish_parity_scrub() to support bs > ps casesQu Wenruo1-89/+87
2025-11-25btrfs: raid56: prepare rbio_bio_add_io_paddr() to support bs > ps casesQu Wenruo1-41/+65
2025-11-25btrfs: raid56: prepare steal_rbio() to support bs > ps casesQu Wenruo1-10/+41
2025-11-25btrfs: raid56: prepare set_bio_pages_uptodate() to support bs > ps casesQu Wenruo1-7/+13
2025-11-25btrfs: raid56: prepare verify_bio_data_sectors() to support bs > ps casesQu Wenruo1-8/+18
2025-11-25btrfs: raid56: prepare verify_one_sector() to support bs > ps casesQu Wenruo1-6/+49
2025-11-25btrfs: raid56: prepare recover_vertical() to support bs > ps casesQu Wenruo1-73/+68
2025-11-25btrfs: raid56: prepare generate_pq_vertical() for bs > ps casesQu Wenruo1-22/+70
2025-11-25btrfs: raid56: introduce a new parameter to locate a sectorQu Wenruo1-31/+61
2025-11-24btrfs: raid56: remove sector_ptr structureQu Wenruo1-158/+125
2025-11-24btrfs: raid56: move sector_ptr::uptodate into a dedicated bitmapQu Wenruo1-35/+33
2025-11-24btrfs: raid56: remove sector_ptr::has_paddr memberQu Wenruo1-20/+26
2025-11-24btrfs: don't generate any code from ASSERT() in release buildsGladyshev Ilya1-2/+2
2025-09-23btrfs: add unlikely annotations to branches leading to EIODavid Sterba1-7/+7
2025-09-23btrfs: prepare scrub to support bs > ps casesQu Wenruo1-15/+29
2025-09-23btrfs: introduce btrfs_bio_for_each_block_all() helperQu Wenruo1-29/+20
2025-09-23btrfs: introduce btrfs_bio_for_each_block() helperQu Wenruo1-4/+3
2025-09-23btrfs: concentrate highmem handling for data verificationQu Wenruo1-10/+3
2025-05-15btrfs: raid56: use list_last_entry() at cache_rbio()Filipe Manana1-3/+3
2025-05-15btrfs: raid56: rename parameter err to status in endio helpersDavid Sterba1-5/+5
2025-05-15btrfs: drop redundant local variable in raid_wait_write_end_io()David Sterba1-2/+1
2025-05-15btrfs: use unsigned types for constants defined as bit shiftsDavid Sterba1-3/+2
2025-05-15btrfs: use list_first_entry() everywhereDavid Sterba1-5/+4
2025-05-15btrfs: raid56: store a physical address in structure sector_ptrQu Wenruo1-70/+82
2025-05-15btrfs: simplify bvec iteration in index_one_bio()Christoph Hellwig1-12/+11
2025-05-15btrfs: move kmapping out of btrfs_check_sector_csum()Christoph Hellwig1-8/+11
2024-11-11btrfs: make assert_rbio() to only check CONFIG_BTRFS_ASSERTQu Wenruo1-2/+1
2024-07-11btrfs: rename the extra_gfp parameter of btrfs_alloc_page_array()Qu Wenruo1-3/+3
2024-07-11btrfs: raid56: do extra dumping for CONFIG_BTRFS_ASSERTQu Wenruo1-14/+98
2024-04-01btrfs use bio_list_merge_initChristoph Hellwig1-2/+1
2024-03-04btrfs: raid56: extra debugging for raid6 syndrome generationQu Wenruo1-0/+30
2024-03-04btrfs: remove unused included headersDavid Sterba1-1/+0
2023-12-15btrfs: refactor alloc_extent_buffer() to allocate-then-attach methodQu Wenruo1-3/+3
2023-12-15btrfs: raid56: remove unused btrfs_plug_cb::workDavid Sterba1-1/+0
2023-08-21btrfs: scrub: avoid unnecessary csum tree search preparing stripesQu Wenruo1-2/+2
2023-08-21btrfs: tracepoints: simplify raid56 eventsQu Wenruo1-4/+4
2023-08-21btrfs: raid56: remove unused BTRFS_RBIO_REBUILD_MISSINGQu Wenruo1-12/+5
2023-07-18btrfs: raid56: always verify the P/Q contents for scrubQu Wenruo1-8/+3
2023-06-19btrfs: scrub: use recovered data stripes as cache to avoid unnecessary readQu Wenruo1-0/+45
2023-06-19btrfs: use SECTOR_SHIFT to convert LBA to physical offsetAnand Jain1-1/+1
2023-06-19btrfs: use SECTOR_SHIFT to convert physical offset to LBAAnand Jain1-1/+1
2023-04-17btrfs: remove unused raid56 functions which were dedicated for scrubQu Wenruo1-47/+0
2023-04-17btrfs: scrub: introduce helper to find and fill sector info for a scrub_stripeQu Wenruo1-1/+1
2023-04-17btrfs: use __bio_add_page to add single a page in rbio_add_io_sectorJohannes Thumshirn1-1/+1
2023-04-17btrfs: replace btrfs_io_context::raid_map with a fixed u64 valueQu Wenruo1-16/+15
2023-04-17btrfs: use an efficient way to represent source of duplicated stripesQu Wenruo1-8/+28
2023-04-17btrfs: raid56: no need for irqsafe lockingChristoph Hellwig1-28/+22
2023-02-15btrfs: raid56: handle endio in scrub_rbioChristoph Hellwig1-11/+7
2023-02-15btrfs: raid56: handle endio in recover_rbioChristoph Hellwig1-18/+9
2023-02-15btrfs: raid56: handle endio in rmw_rbioChristoph Hellwig1-20/+10
2023-02-15btrfs: raid56: submit the read bios from scrub_assemble_read_biosChristoph Hellwig1-23/+13
2023-02-15btrfs: raid56: fold rmw_read_wait_recover into rmw_read_biosChristoph Hellwig1-46/+23
2023-02-15btrfs: raid56: fold recover_assemble_read_bios into recover_rbioChristoph Hellwig1-40/+21
2023-02-15btrfs: raid56: add a bio_list_put helperChristoph Hellwig1-28/+16
2023-02-15btrfs: raid56: wait for I/O completion in submit_read_biosChristoph Hellwig1-7/+6
2023-02-15btrfs: raid56: simplify code flow in rmw_rbioChristoph Hellwig1-15/+13
2023-02-15btrfs: raid56: simplify error handling and code flow in raid56_parity_writeChristoph Hellwig1-22/+15
2023-02-15btrfs: raid56: reduce overhead to calculate the bio lengthQu Wenruo1-2/+1
2023-02-15btrfs: fix spelling mistakes found using codespellColin Ian King1-5/+5
2023-01-27btrfs: raid56: make error_bitmap update atomicQu Wenruo1-2/+10
2023-01-25btrfs: raid56: fix stripes if vertical errors are foundTanmay Bhushan1-1/+1
2022-12-20btrfs: scrub: fix uninitialized return value in recover_scrub_rbioJosef Bacik1-1/+1
2022-12-05btrfs: raid56: do data csum verification during RMW cycleQu Wenruo1-32/+137
2022-12-05btrfs: raid56: prepare data checksums for later RMW verificationQu Wenruo1-0/+74
2022-12-05btrfs: raid56: remove the old error tracking systemQu Wenruo1-181/+53
2022-12-05btrfs: raid56: migrate recovery and scrub recovery path to use error_bitmapQu Wenruo1-86/+193
2022-12-05btrfs: raid56: introduce btrfs_raid_bio::error_bitmapQu Wenruo1-7/+92
2022-12-05btrfs: raid56: switch scrub path to use a single functionQu Wenruo1-318/+79
2022-12-05btrfs: raid56: extract scrub read bio list assembly code into a helperQu Wenruo1-13/+31
2022-12-05btrfs: raid56: switch write path to rmw_rbio()Qu Wenruo1-308/+42
2022-12-05btrfs: raid56: introduce the main entrance for RMW pathQu Wenruo1-0/+161
2022-12-05btrfs: raid56: extract rwm write bios assembly into a helperQu Wenruo1-56/+79
2022-12-05btrfs: raid56: extract the rmw bio list build code into a helperQu Wenruo1-18/+38
2022-12-05btrfs: raid56: switch recovery path to a single functionQu Wenruo1-27/+117
2022-12-05btrfs: raid56: extract sector recovery code into a helperQu Wenruo1-30/+29
2022-12-05btrfs: raid56: extract the recovery bio list build code into a helperQu Wenruo1-23/+41
2022-12-05btrfs: raid56: extract the pq generation code into a helperQu Wenruo1-46/+44
2022-12-05btrfs: raid56: extract the vertical stripe recovery code into recover_vertical()Qu Wenruo1-136/+149
2022-12-05btrfs: update function commentsDavid Sterba1-2/+2
2022-12-05btrfs: move the printk helpers out of ctree.hJosef Bacik1-0/+1
2022-12-05btrfs: raid56: make it more explicit that cache rbio should have all its data...Qu Wenruo1-19/+51
2022-12-05btrfs: raid56: allocate memory separately for rbio pointersQu Wenruo1-22/+24
2022-12-05btrfs: raid56: cleanup for function __free_raid_bio()Qu Wenruo1-31/+30
2022-10-24btrfs: raid56: avoid double freeing for rbio if full_stripe_write() failedQu Wenruo1-5/+7
2022-10-24btrfs: raid56: properly handle the error when unable to find the missing stripeQu Wenruo1-2/+4
2022-09-26btrfs: properly abstract the parity raid bio handlingChristoph Hellwig1-38/+7
2022-08-03Merge tag 'for-5.20-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kda...Linus Torvalds1-421/+371
2022-07-25btrfs: raid56: transfer the bio counter reference to the raid submission helpersChristoph Hellwig1-10/+6
2022-07-25btrfs: do not return errors from raid56_parity_recoverChristoph Hellwig1-23/+16
2022-07-25btrfs: do not return errors from raid56_parity_writeChristoph Hellwig1-8/+15
2022-07-25btrfs: raid56: use fixed stripe length everywhereChristoph Hellwig1-34/+27
2022-07-25btrfs: raid56: don't trust any cached sector in __raid56_parity_recover()Qu Wenruo1-7/+6
2022-07-25btrfs: use btrfs_raid_array to calculate number of parity stripesQu Wenruo1-8/+2
2022-07-25btrfs: raid56: avoid double for loop inside raid56_parity_scrub_stripe()Qu Wenruo1-31/+31
2022-07-25btrfs: raid56: avoid double for loop inside raid56_rmw_stripe()Qu Wenruo1-31/+28
2022-07-25btrfs: raid56: avoid double for loop inside alloc_rbio_essential_pages()Qu Wenruo1-15/+14
2022-07-25btrfs: raid56: avoid double for loop inside __raid56_parity_recover()Qu Wenruo1-20/+19
2022-07-25btrfs: raid56: avoid double for loop inside finish_rmw()Qu Wenruo1-42/+55
2022-07-25btrfs: stop looking at btrfs_bio->iter in index_one_bioChristoph Hellwig1-3/+0
2022-07-25btrfs: defer I/O completion based on the btrfs_raid_bioChristoph Hellwig1-62/+40
2022-07-25btrfs: add trace event for submitted RAID56 bioQu Wenruo1-132/+58
2022-07-25btrfs: update stripe_sectors::uptodate in steal_rbioQu Wenruo1-7/+19
2022-07-25btrfs: only write the sectors in the vertical stripe which has data stripesQu Wenruo1-4/+49
2022-07-25btrfs: use integrated bitmaps for btrfs_raid_bio::dbitmap and finish_pbitmapQu Wenruo1-20/+22
2022-07-25btrfs: fix typos in commentsDavid Sterba1-1/+1
2022-07-14fs/btrfs: Use the enum req_op and blk_opf_t typesBart Van Assche1-2/+2
2022-05-16btrfs: use a normal workqueue for rmw_workersChristoph Hellwig1-15/+14
2022-05-16btrfs: raid56: enable subpage support for RAID56Qu Wenruo1-6/+0
2022-05-16btrfs: raid56: make alloc_rbio_essential_pages() subpage compatibleQu Wenruo1-7/+9
2022-05-16btrfs: raid56: make steal_rbio() subpage compatibleQu Wenruo1-4/+24
2022-05-16btrfs: raid56: make set_bio_pages_uptodate() subpage compatibleQu Wenruo1-6/+36
2022-05-16btrfs: raid56: remove btrfs_raid_bio::bio_pages arrayQu Wenruo1-40/+3
2022-05-16btrfs: raid56: make raid56_add_scrub_pages() subpage compatibleQu Wenruo1-4/+6
2022-05-16btrfs: raid56: open code rbio_stripe_page_index()Qu Wenruo1-6/+1
2022-05-16btrfs: raid56: make finish_rmw() subpage compatibleQu Wenruo1-77/+32
2022-05-16btrfs: raid56: make __raid_recover_endio_io() subpage compatibleQu Wenruo1-23/+28
2022-05-16btrfs: raid56: make finish_parity_scrub() subpage compatibleQu Wenruo1-24/+32
2022-05-16btrfs: raid56: make rbio_add_io_page() subpage compatibleQu Wenruo1-89/+165
2022-05-16btrfs: raid56: introduce btrfs_raid_bio::bio_sectorsQu Wenruo1-2/+55
2022-05-16btrfs: raid56: introduce btrfs_raid_bio::stripe_sectorsQu Wenruo1-4/+56
2022-05-16btrfs: raid56: introduce new cached members for btrfs_raid_bioQu Wenruo1-6/+17
2022-05-16btrfs: raid56: make btrfs_raid_bio more compactQu Wenruo1-19/+21
2022-05-16btrfs: raid56: open code rbio_nr_pages()Qu Wenruo1-13/+5
2022-05-16btrfs: reduce width for stripe_len from u64 to u32Qu Wenruo1-8/+8
2022-05-16btrfs: stop using the btrfs_bio saved iter in index_rbio_pagesChristoph Hellwig1-3/+0
2022-05-16btrfs: don't allocate a btrfs_bio for raid56 per-stripe biosChristoph Hellwig1-5/+2
2022-05-16btrfs: pass bio opf to rbio_add_io_pageChristoph Hellwig1-20/+17
2022-05-16btrfs: factor out allocating an array of pagesSweet Tea Dorminy1-25/+4
2021-10-26btrfs: remove btrfs_raid_bio::fs_info memberQu Wenruo1-24/+24
2021-10-26btrfs: rename struct btrfs_io_bio to btrfs_bioQu Wenruo1-4/+4
2021-10-26btrfs: rename btrfs_bio to btrfs_io_contextQu Wenruo1-64/+63
2021-08-23btrfs: constify and cleanup variables in comparatorsDavid Sterba1-4/+4
2021-08-23btrfs: drop from __GFP_HIGHMEM all allocationsDavid Sterba1-5/+5
2021-04-27Merge tag 'cfi-v5.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/ke...Linus Torvalds1-1/+2
2021-04-19btrfs: raid56: convert kmaps to kmap_local_pageIra Weiny1-31/+34
2021-04-19btrfs: convert kmap to kmap_local_page, simple casesIra Weiny1-2/+2
2021-04-19btrfs: remove duplicated in_range() macroJohannes Thumshirn1-0/+1
2021-04-08treewide: Change list_sort to use const pointersSami Tolvanen1-1/+2
2021-03-01Merge branch 'kmap-conversion-for-5.12' of git://git.kernel.org/pub/scm/linux...Linus Torvalds1-9/+1
2021-03-01Merge tag 'for-5.12-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git...Linus Torvalds1-11/+10
2021-02-26btrfs: use copy_highpage() instead of 2 kmaps()Ira Weiny1-9/+1
2021-02-22btrfs: fix raid6 qstripe kmapIra Weiny1-11/+10
2021-02-21Merge tag 'for-5.12/block-2021-02-17' of git://git.kernel.dk/linux-blockLinus Torvalds1-5/+2
2021-02-08btrfs: remove redundant NULL check before kvfreeYang Li1-2/+1
2021-01-24block: store a block_device pointer in struct bioChristoph Hellwig1-5/+2
2020-12-09btrfs: drop casts of bio bi_sectorDavid Sterba1-4/+4
2020-07-27btrfs: raid56: remove out label in __raid56_parity_recoverNikolay Borisov1-2/+2
2020-07-27btrfs: raid56: don't opencode swap() in __raid_recover_end_ioNikolay Borisov1-5/+2
2020-07-27btrfs: raid56: use in_range where applicableNikolay Borisov1-12/+5
2020-07-27btrfs: raid56: assign bio in while() when using bio_list_popNikolay Borisov1-25/+5
2020-07-27btrfs: raid56: remove redundant device check in rbio_add_io_pageNikolay Borisov1-4/+2
2020-07-27btrfs: record btrfs_device directly in btrfs_io_bioNikolay Borisov1-0/+1
2020-03-23btrfs: use struct_size to calculate size of raid hash tableDavid Sterba1-3/+1
2020-03-23btrfs: raid56: simplify tracking of Q stripe presenceDavid Sterba1-22/+15
2019-11-18btrfs: remove pointless local variable in lock_stripe_add()Johannes Thumshirn1-2/+3
2019-11-18btrfs: raid56: reduce indentation in lock_stripe_addJohannes Thumshirn1-47/+44
2019-11-18btrfs: get rid of unique workqueue helper functionsOmar Sandoval1-3/+2
2019-09-09btrfs: move private raid56 definitions from ctree.hDavid Sterba1-0/+16
2019-04-30block: remove the i argument to bio_for_each_segment_allChristoph Hellwig1-2/+1
2019-03-26Merge tag 'for-5.1-rc2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/...Linus Torvalds1-1/+2
2019-03-18btrfs: raid56: properly unmap parity page in finish_parity_scrub()Andrea Righi1-1/+2
2019-02-15block: allow bio_for_each_segment_all() to iterate over multi-page bvecMing Lei1-1/+2
2018-12-17btrfs: Fix typos in comments and stringsAndrea Gelmini1-1/+1
2018-08-06btrfs: raid56: catch errors from full_stripe_writeDavid Sterba1-1/+4
2018-08-06btrfs: raid56: merge rbio_is_full helpersDavid Sterba1-17/+6
2018-08-06btrfs: raid56: use new helper for async_scrub_parityDavid Sterba1-11/+3
2018-08-06btrfs: raid56: use new helper for async_read_rebuildDavid Sterba1-12/+3
2018-08-06btrfs: raid56: use new helper for async_rmw_stripeDavid Sterba1-9/+2
2018-08-06btrfs: raid56: add new helper for starting async workDavid Sterba1-0/+6
2018-08-06btrfs: open-code bio_set_op_attrsDavid Sterba1-5/+5
2018-08-06btrfs: prune unused includesDavid Sterba1-13/+0
2018-08-06btrfs: use copy_page for copying pages instead of memcpyDavid Sterba1-7/+5
2018-05-30btrfs: raid56: Remove VLA usageKees Cook1-10/+28
2018-04-12btrfs: replace GPL boilerplate by SPDX -- sourcesDavid Sterba1-14/+2
2018-03-31Btrfs: replace: cache rbio when rebuild data on missing deviceLiu Bo1-3/+7
2018-03-26Btrfs: raid56: remove redundant async_missing_raid56Liu Bo1-17/+1
2018-03-14btrfs: Fix NULL pointer exception in find_bio_stripeDmitriy Gorokh1-0/+1
2018-01-22Btrfs: raid56: fix race between merge_bio and rbio_orig_end_ioLiu Bo1-12/+25
2018-01-22Btrfs: do not cache rbio pages if using raid6 recoverLiu Bo1-1/+16
2018-01-22Btrfs: raid56: iterate raid56 internal bio with bio_for_each_segment_allLiu Bo1-6/+5
2018-01-22Btrfs: do not merge rbios if their fail stripe index are not identicalLiu Bo1-0/+19
2018-01-22Btrfs: remove redundant check in rbio_can_mergeLiu Bo1-4/+2
2018-01-22Btrfs: make raid6 rebuild retry moreLiu Bo1-4/+14
2018-01-22Btrfs: remove unused wait in btrfs_stripe_hashLiu Bo1-10/+0
2018-01-22Btrfs: remove unused variable wait in lock_stripe_addLiu Bo1-1/+0
2017-10-30Btrfs: fix memory leak in raid56Liu Bo1-2/+20
2017-10-30Btrfs: search parity device wiselyLiu Bo1-1/+7
2017-09-07Merge branch 'for-4.14/block' of git://git.kernel.dk/linux-blockLinus Torvalds1-3/+5
2017-08-24Btrfs: fix blk_status_t/errno confusionOmar Sandoval1-17/+17
2017-08-23block: replace bi_bdev with a gendisk pointer and partitions indexChristoph Hellwig1-3/+5
2017-07-14Merge branch 'for-4.13-part2' of git://git.kernel.org/pub/scm/linux/kernel/gi...Linus Torvalds1-8/+18
2017-07-13Btrfs: fix write corruption due to bio cloning on raid5/6Filipe Manana1-8/+18
2017-07-05Merge branch 'for-4.13-part1' of git://git.kernel.org/pub/scm/linux/kernel/gi...Linus Torvalds1-11/+5
2017-06-19btrfs: sink gfp parameter to btrfs_io_bio_allocDavid Sterba1-1/+1
2017-06-19btrfs: btrfs_io_bio_alloc never fails, skip error handlingDavid Sterba1-3/+0
2017-06-19btrfs: replace opencoded kvzalloc with the helperDavid Sterba1-7/+4
2017-06-09block: switch bios to blk_status_tChristoph Hellwig1-8/+8
2017-04-18btrfs: Wait for in-flight bios before freeing target device for raid56Qu Wenruo1-0/+14