diff options
Diffstat (limited to 'drivers/md/raid1.c')
-rw-r--r-- | drivers/md/raid1.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c index 8726fd7ebce5..ff7ed3335995 100644 --- a/drivers/md/raid1.c +++ b/drivers/md/raid1.c | |||
@@ -782,8 +782,9 @@ static int make_request(struct request_queue *q, struct bio * bio) | |||
782 | struct bio_list bl; | 782 | struct bio_list bl; |
783 | struct page **behind_pages = NULL; | 783 | struct page **behind_pages = NULL; |
784 | const int rw = bio_data_dir(bio); | 784 | const int rw = bio_data_dir(bio); |
785 | const int do_sync = bio_sync(bio); | 785 | const bool do_sync = bio_rw_flagged(bio, BIO_RW_SYNCIO); |
786 | int cpu, do_barriers; | 786 | int cpu; |
787 | bool do_barriers; | ||
787 | mdk_rdev_t *blocked_rdev; | 788 | mdk_rdev_t *blocked_rdev; |
788 | 789 | ||
789 | /* | 790 | /* |
@@ -797,7 +798,8 @@ static int make_request(struct request_queue *q, struct bio * bio) | |||
797 | 798 | ||
798 | md_write_start(mddev, bio); /* wait on superblock update early */ | 799 | md_write_start(mddev, bio); /* wait on superblock update early */ |
799 | 800 | ||
800 | if (unlikely(!mddev->barriers_work && bio_barrier(bio))) { | 801 | if (unlikely(!mddev->barriers_work && |
802 | bio_rw_flagged(bio, BIO_RW_BARRIER))) { | ||
801 | if (rw == WRITE) | 803 | if (rw == WRITE) |
802 | md_write_end(mddev); | 804 | md_write_end(mddev); |
803 | bio_endio(bio, -EOPNOTSUPP); | 805 | bio_endio(bio, -EOPNOTSUPP); |
@@ -925,7 +927,7 @@ static int make_request(struct request_queue *q, struct bio * bio) | |||
925 | atomic_set(&r1_bio->remaining, 0); | 927 | atomic_set(&r1_bio->remaining, 0); |
926 | atomic_set(&r1_bio->behind_remaining, 0); | 928 | atomic_set(&r1_bio->behind_remaining, 0); |
927 | 929 | ||
928 | do_barriers = bio_barrier(bio); | 930 | do_barriers = bio_rw_flagged(bio, BIO_RW_BARRIER); |
929 | if (do_barriers) | 931 | if (do_barriers) |
930 | set_bit(R1BIO_Barrier, &r1_bio->state); | 932 | set_bit(R1BIO_Barrier, &r1_bio->state); |
931 | 933 | ||
@@ -1600,7 +1602,7 @@ static void raid1d(mddev_t *mddev) | |||
1600 | * We already have a nr_pending reference on these rdevs. | 1602 | * We already have a nr_pending reference on these rdevs. |
1601 | */ | 1603 | */ |
1602 | int i; | 1604 | int i; |
1603 | const int do_sync = bio_sync(r1_bio->master_bio); | 1605 | const bool do_sync = bio_rw_flagged(r1_bio->master_bio, BIO_RW_SYNCIO); |
1604 | clear_bit(R1BIO_BarrierRetry, &r1_bio->state); | 1606 | clear_bit(R1BIO_BarrierRetry, &r1_bio->state); |
1605 | clear_bit(R1BIO_Barrier, &r1_bio->state); | 1607 | clear_bit(R1BIO_Barrier, &r1_bio->state); |
1606 | for (i=0; i < conf->raid_disks; i++) | 1608 | for (i=0; i < conf->raid_disks; i++) |
@@ -1654,7 +1656,7 @@ static void raid1d(mddev_t *mddev) | |||
1654 | (unsigned long long)r1_bio->sector); | 1656 | (unsigned long long)r1_bio->sector); |
1655 | raid_end_bio_io(r1_bio); | 1657 | raid_end_bio_io(r1_bio); |
1656 | } else { | 1658 | } else { |
1657 | const int do_sync = bio_sync(r1_bio->master_bio); | 1659 | const bool do_sync = bio_rw_flagged(r1_bio->master_bio, BIO_RW_SYNCIO); |
1658 | r1_bio->bios[r1_bio->read_disk] = | 1660 | r1_bio->bios[r1_bio->read_disk] = |
1659 | mddev->ro ? IO_BLOCKED : NULL; | 1661 | mddev->ro ? IO_BLOCKED : NULL; |
1660 | r1_bio->read_disk = disk; | 1662 | r1_bio->read_disk = disk; |