[PATCH 3/4] Monitor: fix writing autorebuild.pid
am 26.11.2010 19:26:58 von anna.czarnowskaFrom b51326776e526d301d0efb92151a9ee73c1419b9 Mon Sep 17 00:00:00 2001
From: Anna Czarnowska
Date: Fri, 26 Nov 2010 15:29:53 +0100
Subject: [PATCH 3/4] Monitor: fix writing autorebuild.pid
Cc: linux-raid@vger.kernel.org, Williams, Dan J
If /var/run/mdadm doesn't exist we can never succeed writing
so we should try to create it first. When we make sure it is there we
write pid file as before.
Signed-off-by: Anna Czarnowska
---
Monitor.c | 26 ++++++++++++++++----------
1 files changed, 16 insertions(+), 10 deletions(-)
diff --git a/Monitor.c b/Monitor.c
index cacd2fe..b78a66b 100644
--- a/Monitor.c
+++ b/Monitor.c
@@ -296,21 +296,27 @@ static int check_one_sharer(int scan)
} else {
fprintf(stderr, Name ": Warning: One"
" autorebuild process already"
- " running.");
+ " running.\n");
}
}
fclose(fp);
}
if (scan) {
- fp = fopen("/var/run/mdadm/autorebuild.pid", "w");
- if (!fp)
- fprintf(stderr, Name ": Cannot create"
- " autorebuild.pid "
- "file\n");
- else {
- pid = getpid();
- fprintf(fp, "%d\n", pid);
- fclose(fp);
+ if (mkdir("/var/run/mdadm", S_IRWXU) < 0 &&
+ errno != EEXIST) {
+ fprintf(stderr, Name ": Can't create "
+ "autorebuild.pid file\n");
+ } else {
+ fp = fopen("/var/run/mdadm/autorebuild.pid", "w");
+ if (!fp)
+ fprintf(stderr, Name ": Cannot create"
+ " autorebuild.pid"
+ "file\n");
+ else {
+ pid = getpid();
+ fprintf(fp, "%d\n", pid);
+ fclose(fp);
+ }
}
}
return 0;
--
1.7.1
--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html