]> err.no Git - linux-2.6/blobdiff - drivers/md/raid5.c
[PATCH] md: support write-mostly device in raid1
[linux-2.6] / drivers / md / raid5.c
index 93a9726cc2d6793ed237bfa8d3f2a955da501667..ed859e08d600fbbc31ba8877fe440fd6167201cd 100644 (file)
@@ -1411,6 +1411,11 @@ static int make_request (request_queue_t *q, struct bio * bi)
        sector_t logical_sector, last_sector;
        struct stripe_head *sh;
 
+       if (unlikely(bio_barrier(bi))) {
+               bio_endio(bi, bi->bi_size, -EOPNOTSUPP);
+               return 0;
+       }
+
        md_write_start(mddev, bi);
 
        if (bio_data_dir(bi)==WRITE) {
@@ -1653,6 +1658,7 @@ static int run (mddev_t *mddev)
 
        /* device size must be a multiple of chunk size */
        mddev->size &= ~(mddev->chunk_size/1024 -1);
+       mddev->resync_max_sectors = mddev->size << 1;
 
        if (!conf->chunk_size || conf->chunk_size % 4) {
                printk(KERN_ERR "raid5: invalid chunk size %d for %s\n",
@@ -1931,6 +1937,7 @@ static int raid5_resize(mddev_t *mddev, sector_t sectors)
                set_bit(MD_RECOVERY_NEEDED, &mddev->recovery);
        }
        mddev->size = sectors /2;
+       mddev->resync_max_sectors = sectors;
        return 0;
 }