From b231c4dcb4f54332b16a5bcf75df34b76c5e4b01 Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Fri, 16 Jan 2026 21:21:06 +0100 Subject: [PATCH] core: Improve logging when we cannot create destination mountpoint If we fail to create a parent directory, then the error from make_mount_point_inode_from_path() will always be "No such file or directory" which doesn't tell us anything. Add logging for the mkdir_parents() call as well so we get a useful error. --- src/core/namespace.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/core/namespace.c b/src/core/namespace.c index 1a96989512..6e9c6a09f8 100644 --- a/src/core/namespace.c +++ b/src/core/namespace.c @@ -2050,15 +2050,20 @@ static int apply_one_mount( /* Hmm, either the source or the destination are missing. Let's see if we can create the destination, then try again. */ - (void) mkdir_parents(mount_entry_path(m), 0755); - - q = make_mount_point_inode_from_path(what, mount_entry_path(m), 0755); + q = mkdir_parents(mount_entry_path(m), 0755); if (q < 0 && q != -EEXIST) // FIXME: this shouldn't be logged at LOG_WARNING, but be bubbled up, and logged there to avoid duplicate logging - log_warning_errno(q, "Failed to create destination mount point node '%s', ignoring: %m", + log_warning_errno(q, "Failed to create parent directories of destination mount point node '%s', ignoring: %m", mount_entry_path(m)); - else - try_again = true; + else { + q = make_mount_point_inode_from_path(what, mount_entry_path(m), 0755); + if (q < 0 && q != -EEXIST) + // FIXME: this shouldn't be logged at LOG_WARNING, but be bubbled up, and logged there to avoid duplicate logging + log_warning_errno(q, "Failed to create destination mount point node '%s', ignoring: %m", + mount_entry_path(m)); + else + try_again = true; + } } if (try_again)