diff options
author | Mark Brown <broonie@sirena.org.uk> | 2013-06-14 12:08:35 +0100 |
---|---|---|
committer | Mark Brown <broonie@sirena.org.uk> | 2013-06-14 12:08:35 +0100 |
commit | 017db6aba01656f754d034bf17c6fae0a76ca36e (patch) | |
tree | a3cf0fd4d94aaaa6d56013da1386bd71ca929e52 /drivers/md/raid1.c | |
parent | 964318b02e12781615db595075a29557f4302940 (diff) | |
parent | 4b73febd1ba302268aabe370de25601eaa884b25 (diff) |
Merge branch 'tracking-linux-3.x.y' into merge-manifest
Diffstat (limited to 'drivers/md/raid1.c')
-rw-r--r-- | drivers/md/raid1.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c index fd86b372692..6af167f8109 100644 --- a/drivers/md/raid1.c +++ b/drivers/md/raid1.c @@ -981,7 +981,12 @@ static void raid1_unplug(struct blk_plug_cb *cb, bool from_schedule) while (bio) { /* submit pending writes */ struct bio *next = bio->bi_next; bio->bi_next = NULL; - generic_make_request(bio); + if (unlikely((bio->bi_rw & REQ_DISCARD) && + !blk_queue_discard(bdev_get_queue(bio->bi_bdev)))) + /* Just ignore it */ + bio_endio(bio, 0); + else + generic_make_request(bio); bio = next; } kfree(plug); |