Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit57a0f3a

Browse files
committed
Revert "md: add md_submit_discard_bio() for submitting discard bio"
This reverts commit2628089.Matthew Ruffell reported data corruption in raid10 due to the changesin discard handling [1]. Revert these changes before we find a proper fix.[1]https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1907262/Cc: Matthew Ruffell <matthew.ruffell@canonical.com>Cc: Xiao Ni <xni@redhat.com>Signed-off-by: Song Liu <songliubraving@fb.com>
1 parent17c28c2 commit57a0f3a

File tree

3 files changed

+12
-24
lines changed

3 files changed

+12
-24
lines changed

‎drivers/md/md.c‎

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -8582,26 +8582,6 @@ void md_write_end(struct mddev *mddev)
85828582

85838583
EXPORT_SYMBOL(md_write_end);
85848584

8585-
/* This is used by raid0 and raid10 */
8586-
voidmd_submit_discard_bio(structmddev*mddev,structmd_rdev*rdev,
8587-
structbio*bio,sector_tstart,sector_tsize)
8588-
{
8589-
structbio*discard_bio=NULL;
8590-
8591-
if (__blkdev_issue_discard(rdev->bdev,start,size,
8592-
GFP_NOIO,0,&discard_bio)|| !discard_bio)
8593-
return;
8594-
8595-
bio_chain(discard_bio,bio);
8596-
bio_clone_blkg_association(discard_bio,bio);
8597-
if (mddev->gendisk)
8598-
trace_block_bio_remap(bdev_get_queue(rdev->bdev),
8599-
discard_bio,disk_devt(mddev->gendisk),
8600-
bio->bi_iter.bi_sector);
8601-
submit_bio_noacct(discard_bio);
8602-
}
8603-
EXPORT_SYMBOL(md_submit_discard_bio);
8604-
86058585
/* md_allow_write(mddev)
86068586
* Calling this ensures that the array is marked 'active' so that writes
86078587
* may proceed without blocking. It is important to call this before

‎drivers/md/md.h‎

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -713,8 +713,6 @@ extern void md_write_end(struct mddev *mddev);
713713
externvoidmd_done_sync(structmddev*mddev,intblocks,intok);
714714
externvoidmd_error(structmddev*mddev,structmd_rdev*rdev);
715715
externvoidmd_finish_reshape(structmddev*mddev);
716-
externvoidmd_submit_discard_bio(structmddev*mddev,structmd_rdev*rdev,
717-
structbio*bio,sector_tstart,sector_tsize);
718716

719717
externbool__must_checkmd_flush_request(structmddev*mddev,structbio*bio);
720718
externvoidmd_super_write(structmddev*mddev,structmd_rdev*rdev,

‎drivers/md/raid0.c‎

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -477,6 +477,7 @@ static void raid0_handle_discard(struct mddev *mddev, struct bio *bio)
477477

478478
for (disk=0;disk<zone->nb_dev;disk++) {
479479
sector_tdev_start,dev_end;
480+
structbio*discard_bio=NULL;
480481
structmd_rdev*rdev;
481482

482483
if (disk<start_disk_index)
@@ -499,9 +500,18 @@ static void raid0_handle_discard(struct mddev *mddev, struct bio *bio)
499500

500501
rdev=conf->devlist[(zone-conf->strip_zone)*
501502
conf->strip_zone[0].nb_dev+disk];
502-
md_submit_discard_bio(mddev,rdev,bio,
503+
if (__blkdev_issue_discard(rdev->bdev,
503504
dev_start+zone->dev_start+rdev->data_offset,
504-
dev_end-dev_start);
505+
dev_end-dev_start,GFP_NOIO,0,&discard_bio)||
506+
!discard_bio)
507+
continue;
508+
bio_chain(discard_bio,bio);
509+
bio_clone_blkg_association(discard_bio,bio);
510+
if (mddev->gendisk)
511+
trace_block_bio_remap(bdev_get_queue(rdev->bdev),
512+
discard_bio,disk_devt(mddev->gendisk),
513+
bio->bi_iter.bi_sector);
514+
submit_bio_noacct(discard_bio);
505515
}
506516
bio_endio(bio);
507517
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp