>From b51326776e526d301d0efb92151a9ee73c1419b9 Mon Sep 17 00:00:00 2001 From: Anna Czarnowska <anna.czarnowska@xxxxxxxxx> Date: Fri, 26 Nov 2010 15:29:53 +0100 Subject: [PATCH 3/4] Monitor: fix writing autorebuild.pid Cc: linux-raid@xxxxxxxxxxxxxxx, Williams, Dan J <dan.j.williams@xxxxxxxxx>, Ciechanowski, Ed <ed.ciechanowski@xxxxxxxxx> 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 <anna.czarnowska@xxxxxxxxx> --- 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@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html