mount: rename /proc/mount parser to mount_update_mount_list()
[oweals/mountd.git] / mount.c
diff --git a/mount.c b/mount.c
index db77f10266fdd28a70b576b5d0dc5583e5a58046..f995745eb2c07b51de7ebae21812370f67caaeec 100644 (file)
--- a/mount.c
+++ b/mount.c
@@ -612,7 +612,7 @@ char* is_mounted(char *block, char *path)
        return 0;
 }
 
-static void mount_check_mount_list(void)
+static void mount_update_mount_list(void)
 {
        FILE *fp = fopen("/proc/mounts", "r");
        char tmp[256];
@@ -626,6 +626,12 @@ static void mount_check_mount_list(void)
        while(fgets(tmp, 256, fp) != NULL)
        {
                char *t, *t2;
+
+               if (mounted_count + 1 > MAX_MOUNTED) {
+                       log_printf("found more than %d mounts \n", MAX_MOUNTED);
+                       break;
+               }
+
                t = strstr(tmp, " ");
                if(t)
                {
@@ -651,10 +657,8 @@ static void mount_check_mount_list(void)
                        mounted[mounted_count][0],
                        mounted[mounted_count][1],
                        mounted[mounted_count][2]);*/
-               if(mounted_count < MAX_MOUNTED - 1)
-                       mounted_count++;
-               else
-                       log_printf("found more than %d mounts \n", MAX_MOUNTED);
+
+               mounted_count++;
        }
        fclose(fp);
 }
@@ -775,7 +779,7 @@ static void mount_check_enum(void)
 void mount_init(void)
 {
        INIT_LIST_HEAD(&mounts);
-       timer_add(mount_check_mount_list, 2);
+       timer_add(mount_update_mount_list, 2);
        timer_add(mount_check_enum, 1);
-       mount_check_mount_list();
+       mount_update_mount_list();
 }