Hey Karel, Karel Zak [2015-02-12 12:25 +0100]: > > - r = mnt_table_parse_mtab(tb, NULL); > > + r = mnt_table_parse_mtab(tb, "/proc/self/mountinfo"); > > > This is bad solution. It resolves the issue, but forces libmount to > not read /run/mount/utab.
Can you please explain why? As far as I can see, __mnt_table_parse_mtab() only skips reading /run/mount/utab if reading /proc/self/mountinfo fails and it falls back to reading /proc/mounts (as it immediately returns there in all cases, not just in the failure case). This is probably unintended and a bug. But we shouldn't actually hit that here, as we actually do expect /proc/self/mountinfo to exist (systemd references it in a gazillion places). I. e. whether you pass NULL or "/proc/self/mountinfo" should not make a difference if /etc/mtab is a symlink to /proc (as it should be the case on every systemd installation) -- this patch would simply be a no-op, as it would run the same code paths in libmount with and without the patch. And if /etc/mtab is a file, then without the patch it does mnt_table_parse_file(/etc/mtab) and then parses the utab, and with the patch it parses /proc/self/mountinfo and then the utab. So what goes wrong here? Thanks, Martin -- Martin Pitt | http://www.piware.de Ubuntu Developer (www.ubuntu.com) | Debian Developer (www.debian.org) _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel