aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/raid56.c
AgeCommit message (Expand)AuthorFilesLines
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
2017-04-18Btrfs: fix wrong failed mirror_num of read-repair on raid56Liu Bo1-0/+5
2017-04-18btrfs: convert btrfs_raid_bio.refs from atomic_t to refcount_tElena Reshetova1-10/+9
2017-02-14btrfs: raid56: Remove unused variable in lock_stripe_addQu Wenruo1-2/+0
2016-12-06btrfs: take an fs_info directly when the root is not used otherwiseJeff Mahoney1-14/+12
2016-12-06btrfs: root->fs_info cleanup, add fs_info convenience variablesJeff Mahoney1-24/+18
2016-12-06btrfs: pull node/sector/stripe sizes out of root and into fs_infoJeff Mahoney1-1/+1
2016-11-30btrfs: don't access the bio directly in the raid5/6 codeChristoph Hellwig1-10/+6
2016-09-26Btrfs: remove BUG() in raid56Liu Bo1-1/+4
2016-06-07btrfs: use bio op accessorsMike Christie1-5/+5
2016-06-07block/fs/drivers: remove rw argument from submit_bioMike Christie1-5/+12
2016-05-25btrfs: fix string and comment grammatical issues and typosNicholas D Steeves1-3/+3
2016-04-04mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macrosKirill A. Shutemov1-14/+14
2016-01-20btrfs: raid56: Use raid_write_end_io for scrubZhao Lei1-27/+5
2016-01-20btrfs: Remove unnecessary ClearPageUptodate for raid56Zhao Lei1-2/+0
2016-01-20btrfs: use rbio->nr_pages to reduce calculationZhao Lei1-12/+7
2016-01-20btrfs: Use unified stripe_page's index calculationZhao Lei1-22/+21
2016-01-20btrfs: Fix calculation of rbio->dbitmap's size calculationZhao Lei1-2/+2
2016-01-07btrfs: cleanup, remove stray return statementsDavid Sterba1-2/+0
2015-10-10btrfs: comment waitqueue_active implied by locksDavid Sterba1-1/+5
2015-09-05Merge branch 'for-linus-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git...Linus Torvalds1-10/+77
2015-08-09Btrfs: add RAID 5/6 BTRFS_RBIO_REBUILD_MISSING operationOmar Sandoval1-10/+77
2015-07-29block: add a bi_error field to struct bioChristoph Hellwig1-34/+28
2015-03-25Merge branch 'cleanups-post-3.19' of git://git.kernel.org/pub/scm/linux/kerne...Chris Mason1-10/+3
2015-03-03btrfs: cleanup, use kmalloc_array/kcalloc array helpersDavid Sterba1-2/+1
2015-02-16Btrfs: switch to kvfree() helperWang Shilong1-10/+3
2015-01-21Btrfs: Include map_type in raid_bioZhao Lei1-5/+5
2015-01-21Btrfs: add ref_count and free function for btrfs_bioZhao Lei1-30/+8
2015-01-21Btrfs: Make raid_map array be inlined in btrfs_bio structureZhao Lei1-44/+33
2014-12-03Btrfs, raid56: fix use-after-free problem in the final device replace procedu...Miao Xie1-9/+32
2014-12-03Btrfs, replace: write raid56 parity into the replace target deviceMiao Xie1-0/+23
2014-12-03Btrfs, replace: write dirty pages into the replace target deviceMiao Xie1-38/+66