diff options
author | NeilBrown <neilb@suse.de> | 2009-12-30 12:08:50 +1100 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2009-12-30 15:20:12 +1100 |
commit | 0f9552b5dc4fe10da37fa3f4a4ca185d90fa41c9 (patch) | |
tree | 14f29af551fc226dc4451f1089d4f08dc2611c0d /drivers/md/md.c | |
parent | cbd1998377504df005302ac90d49db72a48552a6 (diff) | |
download | lwn-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.c | 2 |
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); |