summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mount.c10
-rw-r--r--util-linux/mount.c10
2 files changed, 14 insertions, 6 deletions
diff --git a/mount.c b/mount.c
index 89eb099..9d61bd3 100644
--- a/mount.c
+++ b/mount.c
@@ -381,9 +381,13 @@ extern int mount_main(int argc, char **argv)
if (!all && optind == argc)
show_mounts();
- if (optind < argc)
- if (realpath(argv[optind], device) == NULL)
+ if (optind < argc) {
+ /* Don't canonicalize NFS devices. */
+ if (strchr(argv[optind], ':') != NULL)
+ safe_strncpy(device, argv[optind], PATH_MAX);
+ else if (realpath(argv[optind], device) == NULL)
perror_msg_and_die("%s", device);
+ }
if (optind + 1 < argc)
if (realpath(argv[optind + 1], directory) == NULL)
@@ -444,7 +448,7 @@ singlemount:
if (fstabmount == TRUE)
endmntent(f);
- if (all == FALSE && fstabmount == TRUE && optind + 1 == argc)
+ if (all == FALSE && fstabmount == TRUE && m == NULL)
fprintf(stderr, "Can't find %s in /etc/fstab\n", device);
return rc;
diff --git a/util-linux/mount.c b/util-linux/mount.c
index 89eb099..9d61bd3 100644
--- a/util-linux/mount.c
+++ b/util-linux/mount.c
@@ -381,9 +381,13 @@ extern int mount_main(int argc, char **argv)
if (!all && optind == argc)
show_mounts();
- if (optind < argc)
- if (realpath(argv[optind], device) == NULL)
+ if (optind < argc) {
+ /* Don't canonicalize NFS devices. */
+ if (strchr(argv[optind], ':') != NULL)
+ safe_strncpy(device, argv[optind], PATH_MAX);
+ else if (realpath(argv[optind], device) == NULL)
perror_msg_and_die("%s", device);
+ }
if (optind + 1 < argc)
if (realpath(argv[optind + 1], directory) == NULL)
@@ -444,7 +448,7 @@ singlemount:
if (fstabmount == TRUE)
endmntent(f);
- if (all == FALSE && fstabmount == TRUE && optind + 1 == argc)
+ if (all == FALSE && fstabmount == TRUE && m == NULL)
fprintf(stderr, "Can't find %s in /etc/fstab\n", device);
return rc;