diff options
-rw-r--r-- | configure.ac | 9 | ||||
-rw-r--r-- | libmount/src/context.c | 4 | ||||
-rw-r--r-- | libmount/src/tab_parse.c | 5 |
3 files changed, 17 insertions, 1 deletions
diff --git a/configure.ac b/configure.ac index 118dcb777..c846efbda 100644 --- a/configure.ac +++ b/configure.ac @@ -851,6 +851,15 @@ AC_SUBST([LIBMOUNT_PATCH_VERSION], $PACKAGE_VERSION_RELEASE) AC_SUBST([LIBMOUNT_VERSION_INFO]) AC_DEFINE_UNQUOTED([LIBMOUNT_VERSION], ["$LIBMOUNT_VERSION"], [libmount version string]) +AC_ARG_ENABLE([libmount-force-mountinfo], + AS_HELP_STRING([--enable-libmount-force-mountinfo], [ignore /etc/mtab in all situations (recommended for systemd)]), + [], [enable_libmount_force_mountinfo=no] +) + +AS_IF([test "x$enable_libmount_force_mountinfo" == xyes], [ + AC_DEFINE([USE_LIBMOUNT_FORCE_MOUNTINFO], [1], [Define to 1 if want to ignore mtab in all situations.]) +]) + dnl dnl libsmartcols diff --git a/libmount/src/context.c b/libmount/src/context.c index c902f396e..0fb9f6f80 100644 --- a/libmount/src/context.c +++ b/libmount/src/context.c @@ -219,7 +219,11 @@ static int context_init_paths(struct libmnt_context *cxt, int writable) DBG(CXT, ul_debugobj(cxt, "checking for writable tab files")); +#ifdef USE_LIBMOUNT_FORCE_MOUNTINFO + cxt->mtab_writable = 0; +#else mnt_has_regular_mtab(&cxt->mtab_path, &cxt->mtab_writable); +#endif if (!cxt->mtab_writable) /* use /run/mount/utab if /etc/mtab is useless */ diff --git a/libmount/src/tab_parse.c b/libmount/src/tab_parse.c index 2757d0fee..0f87730ee 100644 --- a/libmount/src/tab_parse.c +++ b/libmount/src/tab_parse.c @@ -1052,6 +1052,9 @@ int __mnt_table_parse_mtab(struct libmnt_table *tb, const char *filename, assert(tb); +#ifdef USE_LIBMOUNT_FORCE_MOUNTINFO + DBG(TAB, ul_debugobj(tb, "mtab parse: ignore %s", filename ? filename : "mtab")); +#else if (mnt_has_regular_mtab(&filename, NULL)) { DBG(TAB, ul_debugobj(tb, "force mtab usage [filename=%s]", filename)); @@ -1069,7 +1072,7 @@ int __mnt_table_parse_mtab(struct libmnt_table *tb, const char *filename, return 0; filename = NULL; /* failed */ } - +#endif DBG(TAB, ul_debugobj(tb, "mtab parse: #1 read mountinfo")); /* |