diff options
| author | Kent Overstreet <koverstreet@google.com> | 2012-09-11 14:26:12 -0400 |
|---|---|---|
| committer | Kent Overstreet <koverstreet@google.com> | 2013-03-23 17:15:34 -0400 |
| commit | 2aabaa65ad147bf8238a8a261b15a0c95e9e2afa (patch) | |
| tree | 5d2329be8c0266dae1723f4b486dafcd16d716bb | |
| parent | 8be185f2c9d54d6bc0bac1445227b67cb14c0b13 (diff) | |
raid1: use bio_reset()
Signed-off-by: Kent Overstreet <koverstreet@google.com>
CC: Jens Axboe <axboe@kernel.dk>
CC: NeilBrown <neilb@suse.de>
| -rw-r--r-- | drivers/md/raid1.c | 24 |
1 files changed, 6 insertions, 18 deletions
diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c index 800748d585ca..bb5ec7710c00 100644 --- a/drivers/md/raid1.c +++ b/drivers/md/raid1.c | |||
| @@ -1862,7 +1862,7 @@ static int process_checks(struct r1bio *r1_bio) | |||
| 1862 | struct bio *sbio = r1_bio->bios[i]; | 1862 | struct bio *sbio = r1_bio->bios[i]; |
| 1863 | int size; | 1863 | int size; |
| 1864 | 1864 | ||
| 1865 | if (r1_bio->bios[i]->bi_end_io != end_sync_read) | 1865 | if (sbio->bi_end_io != end_sync_read) |
| 1866 | continue; | 1866 | continue; |
| 1867 | 1867 | ||
| 1868 | if (test_bit(BIO_UPTODATE, &sbio->bi_flags)) { | 1868 | if (test_bit(BIO_UPTODATE, &sbio->bi_flags)) { |
| @@ -1887,16 +1887,15 @@ static int process_checks(struct r1bio *r1_bio) | |||
| 1887 | continue; | 1887 | continue; |
| 1888 | } | 1888 | } |
| 1889 | /* fixup the bio for reuse */ | 1889 | /* fixup the bio for reuse */ |
| 1890 | bio_reset(sbio); | ||
| 1890 | sbio->bi_vcnt = vcnt; | 1891 | sbio->bi_vcnt = vcnt; |
| 1891 | sbio->bi_size = r1_bio->sectors << 9; | 1892 | sbio->bi_size = r1_bio->sectors << 9; |
| 1892 | sbio->bi_idx = 0; | ||
| 1893 | sbio->bi_phys_segments = 0; | ||
| 1894 | sbio->bi_flags &= ~(BIO_POOL_MASK - 1); | ||
| 1895 | sbio->bi_flags |= 1 << BIO_UPTODATE; | ||
| 1896 | sbio->bi_next = NULL; | ||
| 1897 | sbio->bi_sector = r1_bio->sector + | 1893 | sbio->bi_sector = r1_bio->sector + |
| 1898 | conf->mirrors[i].rdev->data_offset; | 1894 | conf->mirrors[i].rdev->data_offset; |
| 1899 | sbio->bi_bdev = conf->mirrors[i].rdev->bdev; | 1895 | sbio->bi_bdev = conf->mirrors[i].rdev->bdev; |
| 1896 | sbio->bi_end_io = end_sync_read; | ||
| 1897 | sbio->bi_private = r1_bio; | ||
| 1898 | |||
| 1900 | size = sbio->bi_size; | 1899 | size = sbio->bi_size; |
| 1901 | for (j = 0; j < vcnt ; j++) { | 1900 | for (j = 0; j < vcnt ; j++) { |
| 1902 | struct bio_vec *bi; | 1901 | struct bio_vec *bi; |
| @@ -2439,18 +2438,7 @@ static sector_t sync_request(struct mddev *mddev, sector_t sector_nr, int *skipp | |||
| 2439 | for (i = 0; i < conf->raid_disks * 2; i++) { | 2438 | for (i = 0; i < conf->raid_disks * 2; i++) { |
| 2440 | struct md_rdev *rdev; | 2439 | struct md_rdev *rdev; |
| 2441 | bio = r1_bio->bios[i]; | 2440 | bio = r1_bio->bios[i]; |
| 2442 | 2441 | bio_reset(bio); | |
| 2443 | /* take from bio_init */ | ||
| 2444 | bio->bi_next = NULL; | ||
| 2445 | bio->bi_flags &= ~(BIO_POOL_MASK-1); | ||
| 2446 | bio->bi_flags |= 1 << BIO_UPTODATE; | ||
| 2447 | bio->bi_rw = READ; | ||
| 2448 | bio->bi_vcnt = 0; | ||
| 2449 | bio->bi_idx = 0; | ||
| 2450 | bio->bi_phys_segments = 0; | ||
| 2451 | bio->bi_size = 0; | ||
| 2452 | bio->bi_end_io = NULL; | ||
| 2453 | bio->bi_private = NULL; | ||
| 2454 | 2442 | ||
| 2455 | rdev = rcu_dereference(conf->mirrors[i].rdev); | 2443 | rdev = rcu_dereference(conf->mirrors[i].rdev); |
| 2456 | if (rdev == NULL || | 2444 | if (rdev == NULL || |
