raid10.c (3fa841d7e7266f6fcc1b3885b905f5153ba897d8) raid10.c (1ef04fefe2241087d9db7e9615c3f11b516e36cf)
1/*
2 * raid10.c : Multiple Devices driver for Linux
3 *
4 * Copyright (C) 2000-2004 Neil Brown
5 *
6 * RAID-10 support for md.
7 *
8 * Base on code in raid1.c. See raid1.c for futher copyright information.

--- 870 unchanged lines hidden (view full) ---

879 read_bio = bio_clone(bio, GFP_NOIO);
880
881 r10_bio->devs[slot].bio = read_bio;
882
883 read_bio->bi_sector = r10_bio->devs[slot].addr +
884 mirror->rdev->data_offset;
885 read_bio->bi_bdev = mirror->rdev->bdev;
886 read_bio->bi_end_io = raid10_end_read_request;
1/*
2 * raid10.c : Multiple Devices driver for Linux
3 *
4 * Copyright (C) 2000-2004 Neil Brown
5 *
6 * RAID-10 support for md.
7 *
8 * Base on code in raid1.c. See raid1.c for futher copyright information.

--- 870 unchanged lines hidden (view full) ---

879 read_bio = bio_clone(bio, GFP_NOIO);
880
881 r10_bio->devs[slot].bio = read_bio;
882
883 read_bio->bi_sector = r10_bio->devs[slot].addr +
884 mirror->rdev->data_offset;
885 read_bio->bi_bdev = mirror->rdev->bdev;
886 read_bio->bi_end_io = raid10_end_read_request;
887 read_bio->bi_rw = READ | do_sync;
887 read_bio->bi_rw = READ | (do_sync << BIO_RW_SYNCIO);
888 read_bio->bi_private = r10_bio;
889
890 generic_make_request(read_bio);
891 return 0;
892 }
893
894 /*
895 * WRITE:

--- 51 unchanged lines hidden (view full) ---

947
948 mbio = bio_clone(bio, GFP_NOIO);
949 r10_bio->devs[i].bio = mbio;
950
951 mbio->bi_sector = r10_bio->devs[i].addr+
952 conf->mirrors[d].rdev->data_offset;
953 mbio->bi_bdev = conf->mirrors[d].rdev->bdev;
954 mbio->bi_end_io = raid10_end_write_request;
888 read_bio->bi_private = r10_bio;
889
890 generic_make_request(read_bio);
891 return 0;
892 }
893
894 /*
895 * WRITE:

--- 51 unchanged lines hidden (view full) ---

947
948 mbio = bio_clone(bio, GFP_NOIO);
949 r10_bio->devs[i].bio = mbio;
950
951 mbio->bi_sector = r10_bio->devs[i].addr+
952 conf->mirrors[d].rdev->data_offset;
953 mbio->bi_bdev = conf->mirrors[d].rdev->bdev;
954 mbio->bi_end_io = raid10_end_write_request;
955 mbio->bi_rw = WRITE | do_sync;
955 mbio->bi_rw = WRITE | (do_sync << BIO_RW_SYNCIO);
956 mbio->bi_private = r10_bio;
957
958 atomic_inc(&r10_bio->remaining);
959 bio_list_add(&bl, mbio);
960 }
961
962 if (unlikely(!atomic_read(&r10_bio->remaining))) {
963 /* the array is dead */

--- 656 unchanged lines hidden (view full) ---

1620 " another mirror\n",
1621 bdevname(rdev->bdev,b),
1622 (unsigned long long)r10_bio->sector);
1623 bio = bio_clone(r10_bio->master_bio, GFP_NOIO);
1624 r10_bio->devs[r10_bio->read_slot].bio = bio;
1625 bio->bi_sector = r10_bio->devs[r10_bio->read_slot].addr
1626 + rdev->data_offset;
1627 bio->bi_bdev = rdev->bdev;
956 mbio->bi_private = r10_bio;
957
958 atomic_inc(&r10_bio->remaining);
959 bio_list_add(&bl, mbio);
960 }
961
962 if (unlikely(!atomic_read(&r10_bio->remaining))) {
963 /* the array is dead */

--- 656 unchanged lines hidden (view full) ---

1620 " another mirror\n",
1621 bdevname(rdev->bdev,b),
1622 (unsigned long long)r10_bio->sector);
1623 bio = bio_clone(r10_bio->master_bio, GFP_NOIO);
1624 r10_bio->devs[r10_bio->read_slot].bio = bio;
1625 bio->bi_sector = r10_bio->devs[r10_bio->read_slot].addr
1626 + rdev->data_offset;
1627 bio->bi_bdev = rdev->bdev;
1628 bio->bi_rw = READ | do_sync;
1628 bio->bi_rw = READ | (do_sync << BIO_RW_SYNCIO);
1629 bio->bi_private = r10_bio;
1630 bio->bi_end_io = raid10_end_read_request;
1631 unplug = 1;
1632 generic_make_request(bio);
1633 }
1634 }
1635 }
1636 if (unplug)

--- 683 unchanged lines hidden ---
1629 bio->bi_private = r10_bio;
1630 bio->bi_end_io = raid10_end_read_request;
1631 unplug = 1;
1632 generic_make_request(bio);
1633 }
1634 }
1635 }
1636 if (unplug)

--- 683 unchanged lines hidden ---