]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
Fix error message when binding files (#7196)
authorZeal Jagannatha <zealjagannatha@gmail.com>
Tue, 14 Nov 2017 07:11:41 +0000 (23:11 -0800)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 14 Nov 2017 07:11:41 +0000 (08:11 +0100)
If you use machinectl to bind a file into a container, it responds with a confusing error message about a temporary directory not being a directory.

I just swapped it to error with the source that was passed, rather than the tmpdir.

It would also be nice to be able to bind files, but that's a separate issue (#7195).

Before the change:

root@epona /var/lib/sandbox $ cat bar/foo
Hello world!
root@epona /var/lib/sandbox $ machinectl bind testing /var/lib/sandbox/bar/foo /foo
Failed to bind mount: Failed to overmount /tmp/propagate.W5TNsj/mount: Not a directory

After the change:

root@epona /var/lib/sandbox $ machinectl bind testing /var/lib/sandbox/bar/foo /foo
Failed to bind mount: Failed to overmount /var/lib/sandbox/bar/foo: Not a directory

src/machine/machine-dbus.c

index 36568b65ef2cb5ff035be4cd4991827f72b6cb3a..3cb90be67d72393aae918348b5aa7af840e87a0c 100644 (file)
@@ -927,7 +927,7 @@ int bus_machine_method_bind_mount(sd_bus_message *message, void *userdata, sd_bu
         mount_tmp_created = true;
 
         if (mount(src, mount_tmp, NULL, MS_BIND, NULL) < 0) {
-                r = sd_bus_error_set_errnof(error, errno, "Failed to overmount %s: %m", mount_tmp);
+                r = sd_bus_error_set_errnof(error, errno, "Failed to mount %s: %m", src);
                 goto finish;
         }