aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/md/dm-raid.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2016-12-14 13:58:17 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2016-12-14 13:58:17 -0500
commit2a4c32edd39b7de166e723b1991abcde4db3a701 (patch)
tree1eba8e303e19d0f8fa0874f4514f87ebac82ae5c /drivers/md/dm-raid.c
parentb9f98bd4034a3196ff068eb0fa376c5f41077480 (diff)
parent20737738d397dfadbca1ea50dcc00d7259f500cf (diff)
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/shli/md
Pull MD updates from Shaohua Li: - a raid5 writeback cache feature. The goal is to aggregate writes to make full stripe write and reduce read-modify-write. It's helpful for workload which does sequential write and follows fsync for example. This feature is experimental and off by default right now. - FAILFAST support. This fails IOs to broken raid disks quickly, so can improve latency. It's mainly for DASD storage, but some patches help normal raid array too. - support bad block for raid array with external metadata - AVX2 instruction support for raid6 parity calculation - normalize MD info output - add missing blktrace - other bug fixes * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/shli/md: (66 commits) md: separate flags for superblock changes md: MD_RECOVERY_NEEDED is set for mddev->recovery md: takeover should clear unrelated bits md/r5cache: after recovery, increase journal seq by 10000 md/raid5-cache: fix crc in rewrite_data_only_stripes() md/raid5-cache: no recovery is required when create super-block md: fix refcount problem on mddev when stopping array. md/r5cache: do r5c_update_log_state after log recovery md/raid5-cache: adjust the write position of the empty block if no data blocks md/r5cache: run_no_space_stripes() when R5C_LOG_CRITICAL == 0 md/raid5: limit request size according to implementation limits md/raid5-cache: do not need to set STRIPE_PREREAD_ACTIVE repeatedly md/raid5-cache: remove the unnecessary next_cp_seq field from the r5l_log md/raid5-cache: release the stripe_head at the appropriate location md/raid5-cache: use ring add to prevent overflow md/raid5-cache: remove unnecessary function parameters raid5-cache: don't set STRIPE_R5C_PARTIAL_STRIPE flag while load stripe into cache raid5-cache: add another check conditon before replaying one stripe md/r5cache: enable IRQs on error path md/r5cache: handle alloc_page failure ...
Diffstat (limited to 'drivers/md/dm-raid.c')
-rw-r--r--drivers/md/dm-raid.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/md/dm-raid.c b/drivers/md/dm-raid.c
index 6d53810963f7..953159d9a825 100644
--- a/drivers/md/dm-raid.c
+++ b/drivers/md/dm-raid.c
@@ -2011,7 +2011,7 @@ static int super_load(struct md_rdev *rdev, struct md_rdev *refdev)
2011 sb->compat_features = cpu_to_le32(FEATURE_FLAG_SUPPORTS_V190); 2011 sb->compat_features = cpu_to_le32(FEATURE_FLAG_SUPPORTS_V190);
2012 2012
2013 /* Force writing of superblocks to disk */ 2013 /* Force writing of superblocks to disk */
2014 set_bit(MD_CHANGE_DEVS, &rdev->mddev->flags); 2014 set_bit(MD_SB_CHANGE_DEVS, &rdev->mddev->sb_flags);
2015 2015
2016 /* Any superblock is better than none, choose that if given */ 2016 /* Any superblock is better than none, choose that if given */
2017 return refdev ? 0 : 1; 2017 return refdev ? 0 : 1;
@@ -3497,7 +3497,7 @@ static void rs_update_sbs(struct raid_set *rs)
3497 struct mddev *mddev = &rs->md; 3497 struct mddev *mddev = &rs->md;
3498 int ro = mddev->ro; 3498 int ro = mddev->ro;
3499 3499
3500 set_bit(MD_CHANGE_DEVS, &mddev->flags); 3500 set_bit(MD_SB_CHANGE_DEVS, &mddev->sb_flags);
3501 mddev->ro = 0; 3501 mddev->ro = 0;
3502 md_update_sb(mddev, 1); 3502 md_update_sb(mddev, 1);
3503 mddev->ro = ro; 3503 mddev->ro = ro;