diff options
author | Karel Zak | 2010-06-23 10:22:02 +0200 |
---|---|---|
committer | Karel Zak | 2011-01-03 12:28:39 +0100 |
commit | 2005515135216801a64926d8e807b7665304d028 (patch) | |
tree | da7395794d35a686952965640ebf53e9b7e61760 /misc-utils/findmnt.c | |
parent | libmount: add /etc/fstab.d support (diff) | |
download | kernel-qcow2-util-linux-2005515135216801a64926d8e807b7665304d028.tar.gz kernel-qcow2-util-linux-2005515135216801a64926d8e807b7665304d028.tar.xz kernel-qcow2-util-linux-2005515135216801a64926d8e807b7665304d028.zip |
findmnt: add /etc/fstab.d support
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'misc-utils/findmnt.c')
-rw-r--r-- | misc-utils/findmnt.c | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/misc-utils/findmnt.c b/misc-utils/findmnt.c index 1754da1d5..76564f6b8 100644 --- a/misc-utils/findmnt.c +++ b/misc-utils/findmnt.c @@ -308,15 +308,32 @@ leave: return rc; } +/* error callback */ +static int parser_errcb(mnt_tab *tb, const char *filename, int line, int flag) +{ + warn(_("%s: parse error at line %d"), filename, line); + return 0; +} + /* calls libmount fstab/mtab/mountinfo parser */ static mnt_tab *parse_tabfile(const char *path) { - mnt_tab *tb = mnt_new_tab(path); + int rc; + mnt_tab *tb = mnt_new_tab(); + if (!tb) { warn(_("failed to initialize libmount tab")); return NULL; } - if (mnt_tab_parse_file(tb) != 0) { + + mnt_tab_set_parser_errcb(tb, parser_errcb); + + if (!strcmp(path, _PATH_MNTTAB)) + rc = mnt_tab_parse_fstab(tb); + else + rc = mnt_tab_parse_file(tb, path); + + if (rc) { mnt_free_tab(tb); warn(_("can't read: %s"), path); return NULL; |