summaryrefslogtreecommitdiff
path: root/mtab.c
diff options
context:
space:
mode:
authorEric Andersen1999-12-05 23:24:55 +0000
committerEric Andersen1999-12-05 23:24:55 +0000
commit0ecb54a0f3fece5e42f089036f059973bed8d87e (patch)
treee25c3d29c9c92fed488e03459b2aee558b1a8d25 /mtab.c
parent14ec6cf3c224d53219b2713b0040dfa03314d5b3 (diff)
downloadbusybox-0ecb54a0f3fece5e42f089036f059973bed8d87e.zip
busybox-0ecb54a0f3fece5e42f089036f059973bed8d87e.tar.gz
Stuf
Diffstat (limited to 'mtab.c')
-rw-r--r--mtab.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/mtab.c b/mtab.c
index e855717..98e42a3 100644
--- 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";