summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2011-03-10 17:07:04 +1100
committerNeilBrown <neilb@suse.de>2011-03-10 17:07:04 +1100
commitabe7250bc70d938f21ccdf0d7686feb39561fe7f (patch)
tree7807d4e7ba3c938581c0e8e086eaa3b995894b39
parenta4622ac62c92280318b43d479e9abc4415ac2bfa (diff)
downloadmdadm-abe7250bc70d938f21ccdf0d7686feb39561fe7f.tar.gz
open_mddev: open RDONLY if RDWR doesn't work.
If an array is read-only then "mdadm -S" cannot open it to stop it without this fix. Signed-off-by: NeilBrown <neilb@suse.de>
-rw-r--r--mdopen.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/mdopen.c b/mdopen.c
index 21baf5d..0a17421 100644
--- a/mdopen.c
+++ b/mdopen.c
@@ -390,6 +390,8 @@ int create_mddev(char *dev, char *name, int autof, int trustworthy,
int open_mddev(char *dev, int report_errors)
{
int mdfd = open(dev, O_RDWR);
+ if (mdfd < 0 && errno == EACCES)
+ mdfd = open(dev, O_RDONLY);
if (mdfd < 0) {
if (report_errors)
fprintf(stderr, Name ": error opening %s: %s\n",