if (mddev->gendisk)
                        trace_block_bio_remap(bio, disk_devt(mddev->gendisk),
                                              bio_sector);
-               mddev_check_writesame(mddev, bio);
                mddev_check_write_zeroes(mddev, bio);
                submit_bio_noacct(bio);
        }
 
        mp_bh->bio.bi_opf |= REQ_FAILFAST_TRANSPORT;
        mp_bh->bio.bi_end_io = multipath_end_request;
        mp_bh->bio.bi_private = mp_bh;
-       mddev_check_writesame(mddev, &mp_bh->bio);
        mddev_check_write_zeroes(mddev, &mp_bh->bio);
        submit_bio_noacct(&mp_bh->bio);
        return true;
 
        mddev->flags &= ~unsupported_flags;
 }
 
-static inline void mddev_check_writesame(struct mddev *mddev, struct bio *bio)
-{
-       if (bio_op(bio) == REQ_OP_WRITE_SAME &&
-           !bio->bi_bdev->bd_disk->queue->limits.max_write_same_sectors)
-               mddev->queue->limits.max_write_same_sectors = 0;
-}
-
 static inline void mddev_check_write_zeroes(struct mddev *mddev, struct bio *bio)
 {
        if (bio_op(bio) == REQ_OP_WRITE_ZEROES &&
 
                bool discard_supported = false;
 
                blk_queue_max_hw_sectors(mddev->queue, mddev->chunk_sectors);
-               blk_queue_max_write_same_sectors(mddev->queue, mddev->chunk_sectors);
                blk_queue_max_write_zeroes_sectors(mddev->queue, mddev->chunk_sectors);
                blk_queue_max_discard_sectors(mddev->queue, UINT_MAX);
 
        if (mddev->gendisk)
                trace_block_bio_remap(bio, disk_devt(mddev->gendisk),
                                      bio_sector);
-       mddev_check_writesame(mddev, bio);
        mddev_check_write_zeroes(mddev, bio);
        submit_bio_noacct(bio);
        return true;
 
        if (IS_ERR(conf))
                return PTR_ERR(conf);
 
-       if (mddev->queue) {
-               blk_queue_max_write_same_sectors(mddev->queue, 0);
+       if (mddev->queue)
                blk_queue_max_write_zeroes_sectors(mddev->queue, 0);
-       }
 
        rdev_for_each(rdev, mddev) {
                if (!mddev->gendisk)
 
        if (mddev->queue) {
                blk_queue_max_discard_sectors(mddev->queue,
                                              UINT_MAX);
-               blk_queue_max_write_same_sectors(mddev->queue, 0);
                blk_queue_max_write_zeroes_sectors(mddev->queue, 0);
                blk_queue_io_min(mddev->queue, mddev->chunk_sectors << 9);
                raid10_set_io_opt(conf);
 
                mddev->queue->limits.discard_alignment = stripe;
                mddev->queue->limits.discard_granularity = stripe;
 
-               blk_queue_max_write_same_sectors(mddev->queue, 0);
                blk_queue_max_write_zeroes_sectors(mddev->queue, 0);
 
                rdev_for_each(rdev, mddev) {