diff options
Diffstat (limited to 'libmount/src')
| -rw-r--r-- | libmount/src/hook_mount.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/libmount/src/hook_mount.c b/libmount/src/hook_mount.c index 4b2a534f74..2e0b5f0fac 100644 --- a/libmount/src/hook_mount.c +++ b/libmount/src/hook_mount.c @@ -64,6 +64,31 @@ static void close_sysapi_fds(struct libmnt_sysapi *api) api->fd_tree = api->fd_fs = -1; } +static void debug_fs_fd_messages(int fd) +{ + uint8_t buf[BUFSIZ]; + int rc; + + while ((rc = read(fd, buf, sizeof(buf))) != -1) { + if (rc > 0 && buf[rc - 1] == '\n') + buf[rc - 1] = '\0'; + DBG(CXT, ul_debug("message from kernel: %*s", rc, buf)); + } +} + +static void set_syscall_status_cxt_log(struct libmnt_context *cxt, + const char *name, int x) +{ + struct libmnt_sysapi *api; + + set_syscall_status(cxt, name, x); + + if (!x) { + api = get_sysapi(cxt); + debug_fs_fd_messages(api->fd_fs); + } +} + /* * This hookset uses 'struct libmnt_sysapi' (mountP.h) as hookset data. */ |
