From e3f72275ca2fa65b51f8183af925a5541eed8a7a Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Mon, 16 Feb 2015 12:49:49 +0100 Subject: libmount: add --enable-libmount-force-mountinfo The default libmount mtab management depends on mtan symlink. If the symlink exists than libmount parses /proc/self/mountinfo, otherwise it parses regular classic /etc/mtab. This is backwardly compatible and transparent solution. Unfortunately, this is not robust enough because some broken init scripts or 3-party mount helpers may remove the symlink and create regular mtab file. This is pretty bad if initd (systemd) depends on libmount. Fortunately we known that mtab is absolutely unwanted on some distros, so it's fine too ignore mtab at all and don't care about the symlink. Reported-by: Martin Pitt Signed-off-by: Karel Zak --- libmount/src/tab_parse.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'libmount/src/tab_parse.c') 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")); /* -- cgit v1.2.3-55-g7522