summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2012-04-22 15:33:43 +0200
committerLennart Poettering <lennart@poettering.net>2012-04-22 15:33:43 +0200
commite0295d2651cff034ab8200156f1ece06154b7bbc (patch)
tree237a6241ce0e5f6d9b92c1c427722acd264cdeea
parent59e132a7f416d7c4a33a46d791f250e03d2c2cd0 (diff)
mount: don't fail if fstab doesn't exist
-rw-r--r--src/core/mount.c5
-rw-r--r--src/cryptsetup/cryptsetup.c3
-rw-r--r--src/remount-api-vfs/remount-api-vfs.c5
3 files changed, 10 insertions, 3 deletions
diff --git a/src/core/mount.c b/src/core/mount.c
index 760ffcdbf..dbd4893bc 100644
--- a/src/core/mount.c
+++ b/src/core/mount.c
@@ -1537,8 +1537,9 @@ static int mount_load_etc_fstab(Manager *m) {
assert(m);
errno = 0;
- if (!(f = setmntent("/etc/fstab", "r")))
- return -errno;
+ f = setmntent("/etc/fstab", "r");
+ if (!f)
+ return errno == ENOENT ? 0 : -errno;
while ((me = getmntent(f))) {
char *where, *what;
diff --git a/src/cryptsetup/cryptsetup.c b/src/cryptsetup/cryptsetup.c
index f214d60d5..3ff0ddf2c 100644
--- a/src/cryptsetup/cryptsetup.c
+++ b/src/cryptsetup/cryptsetup.c
@@ -190,7 +190,8 @@ static char *disk_mount_point(const char *label) {
if (asprintf(&device, "/dev/mapper/%s", label) < 0)
goto finish;
- if (!(f = setmntent("/etc/fstab", "r")))
+ f = setmntent("/etc/fstab", "r");
+ if (!f)
goto finish;
while ((m = getmntent(f)))
diff --git a/src/remount-api-vfs/remount-api-vfs.c b/src/remount-api-vfs/remount-api-vfs.c
index 6cb77c1d1..373ae2552 100644
--- a/src/remount-api-vfs/remount-api-vfs.c
+++ b/src/remount-api-vfs/remount-api-vfs.c
@@ -56,6 +56,11 @@ int main(int argc, char *argv[]) {
f = setmntent("/etc/fstab", "r");
if (!f) {
+ if (errno == ENOENT) {
+ ret = EXIT_SUCCESS;
+ goto finish;
+ }
+
log_error("Failed to open /etc/fstab: %m");
goto finish;
}