]> git.ipfire.org Git - thirdparty/mdadm.git/blobdiff - Monitor.c
mdmon: refactor md device name check in main()
[thirdparty/mdadm.git] / Monitor.c
index 9a1f2514534e81a7354e20430ba2ba2eace93fe3..7cee95d4487ab89bb356c50e74712566079c95c6 100644 (file)
--- a/Monitor.c
+++ b/Monitor.c
@@ -451,20 +451,17 @@ static int check_one_sharer(int scan)
                return 2;
        }
 
-       if (access(AUTOREBUILD_PID_PATH, F_OK) != 0)
-               return 0;
-
-       if (!is_file(AUTOREBUILD_PID_PATH)) {
-               pr_err("%s is not a regular file.\n", AUTOREBUILD_PID_PATH);
-               return 2;
-       }
-
        fp = fopen(AUTOREBUILD_PID_PATH, "r");
        if (!fp) {
                pr_err("Cannot open %s file.\n", AUTOREBUILD_PID_PATH);
                return 2;
        }
 
+       if (!is_file(AUTOREBUILD_PID_PATH)) {
+               pr_err("%s is not a regular file.\n", AUTOREBUILD_PID_PATH);
+               return 2;
+       }
+
        if (fscanf(fp, "%d", &pid) != 1) {
                pr_err("Cannot read pid from %s file.\n", AUTOREBUILD_PID_PATH);
                fclose(fp);
@@ -1309,12 +1306,12 @@ int Wait(char *dev)
                         * sync_action does.
                         */
                        struct mdinfo mdi;
-                       char buf[21];
+                       char buf[SYSFS_MAX_BUF_SIZE];
 
                        if (sysfs_init(&mdi, -1, devnm))
                                return 2;
                        if (sysfs_get_str(&mdi, NULL, "sync_action",
-                                         buf, 20) > 0 &&
+                                         buf, sizeof(buf)) > 0 &&
                            strcmp(buf,"idle\n") != 0) {
                                e->percent = RESYNC_UNKNOWN;
                                if (strcmp(buf, "frozen\n") == 0) {
@@ -1393,7 +1390,7 @@ int WaitClean(char *dev, int verbose)
 
        if (rv) {
                int state_fd = sysfs_open(fd2devnm(fd), NULL, "array_state");
-               char buf[20];
+               char buf[SYSFS_MAX_BUF_SIZE];
                int delay = 5000;
 
                /* minimize the safe_mode_delay and prepare to wait up to 5s