]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
mount: do not require that the specified directory exists
authorYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 30 Nov 2017 16:27:53 +0000 (01:27 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Sat, 2 Dec 2017 15:29:03 +0000 (00:29 +0900)
If the specified direcotry does not exist, then systemd creates it
when the mount unit starts. So, it is not necessary to check the
existence in the client tool.

src/mount/mount-tool.c

index f9ac20be5b80ce960b82576738b58f357e0a41f6..b454c455184a90f281fba556c5e74e1d97881a50 100644 (file)
@@ -30,6 +30,7 @@
 #include "escape.h"
 #include "fd-util.h"
 #include "fileio.h"
+#include "fs-util.h"
 #include "fstab-util.h"
 #include "mount-util.h"
 #include "pager.h"
@@ -361,16 +362,9 @@ static int parse_argv(int argc, char *argv[]) {
 
                 if (argc > optind+1) {
                         if (arg_transport == BUS_TRANSPORT_LOCAL) {
-                                _cleanup_free_ char *p = NULL;
-
-                                r = path_make_absolute_cwd(argv[optind+1], &p);
+                                r = chase_symlinks(argv[optind+1], NULL, CHASE_NONEXISTENT, &arg_mount_where);
                                 if (r < 0)
                                         return log_error_errno(r, "Failed to make path %s absolute: %m", argv[optind+1]);
-
-                                arg_mount_where = canonicalize_file_name(p);
-                                if (!arg_mount_where)
-                                        return log_error_errno(errno, "Failed to canonicalize path %s: %m", p);
-
                         } else {
                                 arg_mount_where = strdup(argv[optind+1]);
                                 if (!arg_mount_where)