aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/md/raid1.c
diff options
context:
space:
mode:
authorShaohua Li <shli@fb.com>2017-01-04 19:10:19 -0500
committerShaohua Li <shli@fb.com>2017-01-05 14:45:18 -0500
commit394ed8e4743b0cfc5496fe49059fbfc2bc8eae35 (patch)
tree65412c7b017be0fc1a2316f4a0778328421a0f4c /drivers/md/raid1.c
parent99f17890f04cff0262de7393c60a2f6d9c9c7e71 (diff)
md: cleanup mddev flag clear for takeover
Commit 6995f0b (md: takeover should clear unrelated bits) clear unrelated bits, but it's quite fragile. To avoid error in the future, define a macro for unsupported mddev flags for each raid type and use it to clear unsupported mddev flags. This should be less error-prone. Suggested-by: NeilBrown <neilb@suse.com> Signed-off-by: Shaohua Li <shli@fb.com>
Diffstat (limited to 'drivers/md/raid1.c')
-rw-r--r--drivers/md/raid1.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c
index 14422407e520..7b0f647bcccb 100644
--- a/drivers/md/raid1.c
+++ b/drivers/md/raid1.c
@@ -42,6 +42,10 @@
42#include "raid1.h" 42#include "raid1.h"
43#include "bitmap.h" 43#include "bitmap.h"
44 44
45#define UNSUPPORTED_MDDEV_FLAGS \
46 ((1L << MD_HAS_JOURNAL) | \
47 (1L << MD_JOURNAL_CLEAN))
48
45/* 49/*
46 * Number of guaranteed r1bios in case of extreme VM load: 50 * Number of guaranteed r1bios in case of extreme VM load:
47 */ 51 */
@@ -3257,8 +3261,8 @@ static void *raid1_takeover(struct mddev *mddev)
3257 if (!IS_ERR(conf)) { 3261 if (!IS_ERR(conf)) {
3258 /* Array must appear to be quiesced */ 3262 /* Array must appear to be quiesced */
3259 conf->array_frozen = 1; 3263 conf->array_frozen = 1;
3260 clear_bit(MD_HAS_JOURNAL, &mddev->flags); 3264 mddev_clear_unsupported_flags(mddev,
3261 clear_bit(MD_JOURNAL_CLEAN, &mddev->flags); 3265 UNSUPPORTED_MDDEV_FLAGS);
3262 } 3266 }
3263 return conf; 3267 return conf;
3264 } 3268 }