Monitor: fix writing autorebuild.pid
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@intel.com> Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
parent
24baa548c4
commit
a1bb206520
26
Monitor.c
26
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;
|
||||
|
|
Loading…
Reference in New Issue