diff options
author | NeilBrown <neilb@suse.de> | 2009-12-30 12:08:50 +1100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-01-28 15:02:18 -0800 |
commit | 2928b68f6294139ffbd2138440ce08efeaf23d15 (patch) | |
tree | 8c1734f405616bb8d1f3eeea1fde1761ba0e03d8 /drivers/md | |
parent | 31cf6d8a86469e96cf4ea0a0a89b87ddef1a65cc (diff) |
md: fix small irregularity with start_ro module parameter
commit 0f9552b5dc4fe10da37fa3f4a4ca185d90fa41c9 upstream.
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>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/md')
-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 c6a6685b080..08f7471d015 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c @@ -4173,7 +4173,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); |