diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2016-05-02 15:22:51 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-05-02 15:22:51 -0400 |
commit | 98bcf28636ac2397489e230b107a051524b1233b (patch) | |
tree | 9e5e19a1d4fcff9a8824f029da3923e1ef532bf9 | |
parent | 33656a1f2ee5346c742d63ddd0e0970c95a56b70 (diff) | |
parent | b8a0b8e94648179b92191e5cf4fd3c4379b31cc4 (diff) |
Merge tag 'md/4.6-rc6-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/shli/md
Pull MD fixes from Shaohua Li:
"This update includes several trival fixes. The only important one is
to fix MD bio merge, which has big performance impact"
* tag 'md/4.6-rc6-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/shli/md:
raid5: delete unnecessary warnning
MD: make bio mergeable
md/raid0: remove empty line printk from dump_zones
md/raid0: fix uninitialized variable bug
-rw-r--r-- | drivers/md/md.c | 2 | ||||
-rw-r--r-- | drivers/md/raid0.c | 2 | ||||
-rw-r--r-- | drivers/md/raid5.c | 2 |
3 files changed, 3 insertions, 3 deletions
diff --git a/drivers/md/md.c b/drivers/md/md.c index 194580fba7fd..14d3b37944df 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c | |||
@@ -284,6 +284,8 @@ static blk_qc_t md_make_request(struct request_queue *q, struct bio *bio) | |||
284 | * go away inside make_request | 284 | * go away inside make_request |
285 | */ | 285 | */ |
286 | sectors = bio_sectors(bio); | 286 | sectors = bio_sectors(bio); |
287 | /* bio could be mergeable after passing to underlayer */ | ||
288 | bio->bi_rw &= ~REQ_NOMERGE; | ||
287 | mddev->pers->make_request(mddev, bio); | 289 | mddev->pers->make_request(mddev, bio); |
288 | 290 | ||
289 | cpu = part_stat_lock(); | 291 | cpu = part_stat_lock(); |
diff --git a/drivers/md/raid0.c b/drivers/md/raid0.c index 2ea12c6bf659..34783a3c8b3c 100644 --- a/drivers/md/raid0.c +++ b/drivers/md/raid0.c | |||
@@ -70,7 +70,6 @@ static void dump_zones(struct mddev *mddev) | |||
70 | (unsigned long long)zone_size>>1); | 70 | (unsigned long long)zone_size>>1); |
71 | zone_start = conf->strip_zone[j].zone_end; | 71 | zone_start = conf->strip_zone[j].zone_end; |
72 | } | 72 | } |
73 | printk(KERN_INFO "\n"); | ||
74 | } | 73 | } |
75 | 74 | ||
76 | static int create_strip_zones(struct mddev *mddev, struct r0conf **private_conf) | 75 | static int create_strip_zones(struct mddev *mddev, struct r0conf **private_conf) |
@@ -85,6 +84,7 @@ static int create_strip_zones(struct mddev *mddev, struct r0conf **private_conf) | |||
85 | struct r0conf *conf = kzalloc(sizeof(*conf), GFP_KERNEL); | 84 | struct r0conf *conf = kzalloc(sizeof(*conf), GFP_KERNEL); |
86 | unsigned short blksize = 512; | 85 | unsigned short blksize = 512; |
87 | 86 | ||
87 | *private_conf = ERR_PTR(-ENOMEM); | ||
88 | if (!conf) | 88 | if (!conf) |
89 | return -ENOMEM; | 89 | return -ENOMEM; |
90 | rdev_for_each(rdev1, mddev) { | 90 | rdev_for_each(rdev1, mddev) { |
diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c index 8ab8b65e1741..e48c262ce032 100644 --- a/drivers/md/raid5.c +++ b/drivers/md/raid5.c | |||
@@ -3502,8 +3502,6 @@ returnbi: | |||
3502 | dev = &sh->dev[i]; | 3502 | dev = &sh->dev[i]; |
3503 | } else if (test_bit(R5_Discard, &dev->flags)) | 3503 | } else if (test_bit(R5_Discard, &dev->flags)) |
3504 | discard_pending = 1; | 3504 | discard_pending = 1; |
3505 | WARN_ON(test_bit(R5_SkipCopy, &dev->flags)); | ||
3506 | WARN_ON(dev->page != dev->orig_page); | ||
3507 | } | 3505 | } |
3508 | 3506 | ||
3509 | r5l_stripe_write_finished(sh); | 3507 | r5l_stripe_write_finished(sh); |