Commit 98bcf286 authored by Linus Torvalds's avatar Linus Torvalds

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
parents 33656a1f b8a0b8e9
...@@ -284,6 +284,8 @@ static blk_qc_t md_make_request(struct request_queue *q, struct bio *bio) ...@@ -284,6 +284,8 @@ static blk_qc_t md_make_request(struct request_queue *q, struct bio *bio)
* go away inside make_request * go away inside make_request
*/ */
sectors = bio_sectors(bio); sectors = bio_sectors(bio);
/* bio could be mergeable after passing to underlayer */
bio->bi_rw &= ~REQ_NOMERGE;
mddev->pers->make_request(mddev, bio); mddev->pers->make_request(mddev, bio);
cpu = part_stat_lock(); cpu = part_stat_lock();
......
...@@ -70,7 +70,6 @@ static void dump_zones(struct mddev *mddev) ...@@ -70,7 +70,6 @@ static void dump_zones(struct mddev *mddev)
(unsigned long long)zone_size>>1); (unsigned long long)zone_size>>1);
zone_start = conf->strip_zone[j].zone_end; zone_start = conf->strip_zone[j].zone_end;
} }
printk(KERN_INFO "\n");
} }
static int create_strip_zones(struct mddev *mddev, struct r0conf **private_conf) 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,6 +84,7 @@ static int create_strip_zones(struct mddev *mddev, struct r0conf **private_conf)
struct r0conf *conf = kzalloc(sizeof(*conf), GFP_KERNEL); struct r0conf *conf = kzalloc(sizeof(*conf), GFP_KERNEL);
unsigned short blksize = 512; unsigned short blksize = 512;
*private_conf = ERR_PTR(-ENOMEM);
if (!conf) if (!conf)
return -ENOMEM; return -ENOMEM;
rdev_for_each(rdev1, mddev) { rdev_for_each(rdev1, mddev) {
......
...@@ -3502,8 +3502,6 @@ static void handle_stripe_clean_event(struct r5conf *conf, ...@@ -3502,8 +3502,6 @@ static void handle_stripe_clean_event(struct r5conf *conf,
dev = &sh->dev[i]; dev = &sh->dev[i];
} else if (test_bit(R5_Discard, &dev->flags)) } else if (test_bit(R5_Discard, &dev->flags))
discard_pending = 1; discard_pending = 1;
WARN_ON(test_bit(R5_SkipCopy, &dev->flags));
WARN_ON(dev->page != dev->orig_page);
} }
r5l_stripe_write_finished(sh); r5l_stripe_write_finished(sh);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment