Making note of my changes
[oweals/busybox.git] / mtab.c
diff --git a/mtab.c b/mtab.c
index e855717cef76e4e50ed1f519406c1961a86b78d0..98e42a383c8249c89dfad18980841197159c335f 100644 (file)
--- a/mtab.c
+++ b/mtab.c
@@ -26,8 +26,14 @@ erase_mtab(const char * name)
        FILE *mountTable = setmntent(mtab_file, "r");
        struct mntent * m;
 
-       if ( mountTable == 0
-        && (mountTable = setmntent("/proc/mounts", "r")) == 0 ) {
+       /* Check if reading the mtab file failed */
+       if ( mountTable == 0 
+#if ! defined BB_FEATURE_USE_PROCFS
+                             ) {
+#else 
+           /* Bummer.  fall back on trying the /proc filesystem */
+            && (mountTable = setmntent("/proc/mounts", "r")) == 0 ) {
+#endif
                perror(mtab_file);
                return;
        }
@@ -76,13 +82,14 @@ write_mtab(char* blockDevice, char* directory,
            if ( length > 1 && directory[length - 1] == '/' )
                    directory[length - 1] = '\0';
 
+#ifdef BB_FEATURE_USE_PROCFS
            if ( filesystemType == 0 ) {
-                   struct mntent *     p
-                    = findMountPoint(blockDevice, "/proc/mounts");
+                   struct mntent *p = findMountPoint(blockDevice, "/proc/mounts");
 
                    if ( p && p->mnt_type )
                            filesystemType = p->mnt_type;
            }
+#endif
            m.mnt_fsname = blockDevice;
            m.mnt_dir = directory;
            m.mnt_type = filesystemType ? filesystemType : "default";