From 4b85aef355e4a1a783c7fcf693575e85c366d90b Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Fri, 15 Apr 2016 14:30:43 +0200 Subject: libmount: fix mnt_table_parse_stream() logic Signed-off-by: Karel Zak --- libmount/src/tab_parse.c | 8 +++++++- 1 file changed, 7 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 044e15415..264b8ca37 100644 --- a/libmount/src/tab_parse.c +++ b/libmount/src/tab_parse.c @@ -590,6 +590,9 @@ static int kernel_fs_postparse(struct libmnt_table *tb, DBG(TAB, ul_debugobj(tb, "canonical root FS: %s", real)); rc = __mnt_fs_set_source_ptr(fs, real); } + /* mnt_guess_system_root() returns 1 if not able to conver to + * the real devname; ignore this problem */ + rc = 0; } return rc; @@ -644,8 +647,11 @@ int mnt_table_parse_stream(struct libmnt_table *tb, FILE *f, const char *filenam rc = mnt_table_add_fs(tb, fs); fs->flags |= flags; - if (rc == 0 && tb->fmt == MNT_FMT_MOUNTINFO) + if (rc == 0 && tb->fmt == MNT_FMT_MOUNTINFO) { rc = kernel_fs_postparse(tb, fs, &tid, filename); + if (rc) + mnt_table_remove_fs(tb, fs); + } } if (rc) { -- cgit v1.2.3-55-g7522