summaryrefslogtreecommitdiff
path: root/drivers/md/md.c
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2009-12-30 12:08:50 +1100
committerNeilBrown <neilb@suse.de>2009-12-30 15:20:12 +1100
commit0f9552b5dc4fe10da37fa3f4a4ca185d90fa41c9 (patch)
tree14f29af551fc226dc4451f1089d4f08dc2611c0d /drivers/md/md.c
parentcbd1998377504df005302ac90d49db72a48552a6 (diff)
downloadlwn-0f9552b5dc4fe10da37fa3f4a4ca185d90fa41c9.tar.gz
lwn-0f9552b5dc4fe10da37fa3f4a4ca185d90fa41c9.zip
md: fix small irregularity with start_ro module parameter
The start_ro modules parameter can be used to force arrays to be started in 'auto-readonly' in which they are read-only until the first write. This ensures that no resync/recovery happens until something else writes to the device. This is important for resume-from-disk off an md array. However if an array is started 'readonly' (by writing 'readonly' to the 'array_state' sysfs attribute) we want it to be really 'readonly', not 'auto-readonly'. So strengthen the condition to only set auto-readonly if the array is not already read-only. Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'drivers/md/md.c')
-rw-r--r--drivers/md/md.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/md/md.c b/drivers/md/md.c
index 7862231a0750..d2aff7209070 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -4357,7 +4357,7 @@ static int do_md_run(mddev_t * mddev)
mddev->barriers_work = 1;
mddev->ok_start_degraded = start_dirty_degraded;
- if (start_readonly)
+ if (start_readonly && mddev->ro == 0)
mddev->ro = 2; /* read-only, but switch on first write */
err = mddev->pers->run(mddev);