diff options
author | Shaohua Li <shli@fb.com> | 2015-10-09 07:54:10 +0300 |
---|---|---|
committer | NeilBrown <neilb@suse.com> | 2015-11-01 05:48:29 +0300 |
commit | 7dde2ad3c5b4afb4b2544b864fa34dd1f4897ab6 (patch) | |
tree | 301d84d8773e13a6b815355446b485ed3dcfc595 /drivers/md/raid5.c | |
parent | a97b7896447a89749d9258fbb9d8c3faf48a7a4e (diff) | |
download | linux-7dde2ad3c5b4afb4b2544b864fa34dd1f4897ab6.tar.xz |
raid5-cache: start raid5 readonly if journal is missing
If raid array is expected to have journal (eg, journal is set in MD
superblock feature map) and the array is started without journal disk,
start the array readonly.
Signed-off-by: Shaohua Li <shli@fb.com>
Signed-off-by: NeilBrown <neilb@suse.com>
Diffstat (limited to 'drivers/md/raid5.c')
-rw-r--r-- | drivers/md/raid5.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c index 68c36ce4fe8e..e1d18be67243 100644 --- a/drivers/md/raid5.c +++ b/drivers/md/raid5.c @@ -6810,6 +6810,13 @@ static int run(struct mddev *mddev) if (IS_ERR(conf)) return PTR_ERR(conf); + if (test_bit(MD_HAS_JOURNAL, &mddev->flags) && !journal_dev) { + printk(KERN_ERR "md/raid:%s: journal disk is missing, force array readonly\n", + mdname(mddev)); + mddev->ro = 1; + set_disk_ro(mddev->gendisk, 1); + } + conf->min_offset_diff = min_offset_diff; mddev->thread = conf->thread; conf->thread = NULL; |