OSDN Git Service

Dont try to automount some specific filesystem types
authorGlenn L McGrath <bug1@ihug.co.nz>
Fri, 2 Mar 2001 22:21:34 +0000 (22:21 -0000)
committerGlenn L McGrath <bug1@ihug.co.nz>
Fri, 2 Mar 2001 22:21:34 +0000 (22:21 -0000)
mount.c
util-linux/mount.c

diff --git a/mount.c b/mount.c
index cddccad..fd68daf 100644 (file)
--- a/mount.c
+++ b/mount.c
@@ -239,18 +239,28 @@ mount_one(char *blockDevice, char *directory, char *filesystemType,
        int status = 0;
 
        if (strcmp(filesystemType, "auto") == 0) {
-               int i=0;
+               static const char *strings[] = { "tmpfs", "shm", "proc", "ramfs", "devpts", 0 };
+               const char** nodevfss;
                const int num_of_filesystems = sysfs(3, 0, 0);
                char buf[255];
+               int i=0;
+
                filesystemType=buf;
 
                while(i < num_of_filesystems) {
                        sysfs(2, i++, filesystemType);
-                       status = do_mount(blockDevice, directory, filesystemType,
+                       for (nodevfss = strings; *nodevfss; nodevfss++) {
+                               if (!strcmp(filesystemType, *nodevfss)) {
+                                       break;
+                               }
+                       }
+                       if (!*nodevfss) {
+                               status = do_mount(blockDevice, directory, filesystemType,
                                        flags | MS_MGC_VAL, string_flags,
                                        useMtab, fakeIt, mtab_opts);
-                       if (status == TRUE)
-                               break;
+                               if (status == TRUE)
+                                       break;
+                       }
                }
        } else {
                status = do_mount(blockDevice, directory, filesystemType,
index cddccad..fd68daf 100644 (file)
@@ -239,18 +239,28 @@ mount_one(char *blockDevice, char *directory, char *filesystemType,
        int status = 0;
 
        if (strcmp(filesystemType, "auto") == 0) {
-               int i=0;
+               static const char *strings[] = { "tmpfs", "shm", "proc", "ramfs", "devpts", 0 };
+               const char** nodevfss;
                const int num_of_filesystems = sysfs(3, 0, 0);
                char buf[255];
+               int i=0;
+
                filesystemType=buf;
 
                while(i < num_of_filesystems) {
                        sysfs(2, i++, filesystemType);
-                       status = do_mount(blockDevice, directory, filesystemType,
+                       for (nodevfss = strings; *nodevfss; nodevfss++) {
+                               if (!strcmp(filesystemType, *nodevfss)) {
+                                       break;
+                               }
+                       }
+                       if (!*nodevfss) {
+                               status = do_mount(blockDevice, directory, filesystemType,
                                        flags | MS_MGC_VAL, string_flags,
                                        useMtab, fakeIt, mtab_opts);
-                       if (status == TRUE)
-                               break;
+                               if (status == TRUE)
+                                       break;
+                       }
                }
        } else {
                status = do_mount(blockDevice, directory, filesystemType,