]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
portable: add a few more useful debug log messages
authorLuca Boccassi <bluca@debian.org>
Wed, 23 Nov 2022 16:06:48 +0000 (16:06 +0000)
committerLuca Boccassi <luca.boccassi@gmail.com>
Wed, 23 Nov 2022 22:02:07 +0000 (23:02 +0100)
When attaching and /etc/systemd/system.attached can't be created or used
(eg: dead symlink) the logs are pretty much useless as even at debug
level there's no indication of what is going wrong.
Add some debug logs, and return a more specific error string over D-Bus.

src/portable/portable.c

index dd0f6d3d1303c4ec994c50e7a67ff064829aca90..76af743771ee5c05aca7378afc3792bb7fed6f35 100644 (file)
@@ -1131,7 +1131,7 @@ static int attach_unit_file(
         (void) mkdir_parents(where, 0755);
         if (mkdir(where, 0755) < 0) {
                 if (errno != EEXIST)
-                        return -errno;
+                        return log_debug_errno(errno, "Failed to create attach directory %s: %m", where);
         } else
                 (void) portable_changes_add(changes, n_changes, PORTABLE_MKDIR, where, NULL);
 
@@ -1145,7 +1145,7 @@ static int attach_unit_file(
 
         if (mkdir(dropin_dir, 0755) < 0) {
                 if (errno != EEXIST)
-                        return -errno;
+                        return log_debug_errno(errno, "Failed to create drop-in directory %s: %m", dropin_dir);
         } else
                 (void) portable_changes_add(changes, n_changes, PORTABLE_MKDIR, dropin_dir, NULL);
 
@@ -1392,7 +1392,7 @@ int portable_attach(
                 r = attach_unit_file(&paths, image->path, image->type, extension_images,
                                      item, profile, flags, changes, n_changes);
                 if (r < 0)
-                        return r;
+                        return sd_bus_error_set_errnof(error, r, "Failed to attach unit '%s': %m", item->name);
         }
 
         /* We don't care too much for the image symlink, it's just a convenience thing, it's not necessary for proper