diff options
author | Shaohua Li <shli@fb.com> | 2016-12-08 18:48:19 -0500 |
---|---|---|
committer | Shaohua Li <shli@fb.com> | 2016-12-09 01:01:47 -0500 |
commit | 2953079c692da067aeb6345659875b97378f9b0a (patch) | |
tree | 06bec98f71114629966da122360fd38a6f8ec422 /drivers/md/dm-raid.c | |
parent | 82a301cb0ea2df8a5c88213094a01660067c7fb4 (diff) |
md: separate flags for superblock changes
The mddev->flags are used for different purposes. There are a lot of
places we check/change the flags without masking unrelated flags, we
could check/change unrelated flags. These usage are most for superblock
write, so spearate superblock related flags. This should make the code
clearer and also fix real bugs.
Reviewed-by: NeilBrown <neilb@suse.com>
Signed-off-by: Shaohua Li <shli@fb.com>
Diffstat (limited to 'drivers/md/dm-raid.c')
-rw-r--r-- | drivers/md/dm-raid.c | 4 |
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; |