]> git.decadent.org.uk Git - nfs-utils.git/blobdiff - utils/mount/mount.c
mount.nfs: Remove get_my_ipv4addr() from append_addr_opt()
[nfs-utils.git] / utils / mount / mount.c
index 627019afa2b1974bd75c501261ade8d578e86522..251394380e76b49763119e2c307ef43cf1fd8b1c 100644 (file)
@@ -470,6 +470,11 @@ int main(int argc, char *argv[])
                                        " kernel\n"), progname);
                                exit(EX_USAGE);
                        }
+                       if (uid != 0) {
+                               nfs_error(_("%s: -i option is restricted to 'root'\n"),
+                                       progname);
+                               exit(EX_USAGE);
+                       }
                        ++string;
                        break;
                case 'h':
@@ -545,15 +550,19 @@ int main(int argc, char *argv[])
        mnt_err = try_mount(spec, mount_point, flags, fs_type, &extra_opts,
                                mount_opts, fake, nomtab, FOREGROUND);
        if (mnt_err == EX_BG) {
-               printf(_("mount: backgrounding \"%s\"\n"), spec);
+               printf(_("%s: backgrounding \"%s\"\n"),
+                       progname, spec);
                fflush(stdout);
 
                /*
-                * Parent exits immediately with success.  Make
-                * sure not to free "mount_point"
+                * Parent exits immediately with success.
                 */
-               if (fork() > 0)
-                       exit(0);
+               if (daemon(0, 0)) {
+                       nfs_error(_("%s: failed to start "
+                                       "background process: %s\n"),
+                                               progname, strerror(errno));
+                       exit(EX_FAIL);
+               }
 
                mnt_err = try_mount(spec, mount_point, flags, fs_type,
                                        &extra_opts, mount_opts, fake,
@@ -561,7 +570,6 @@ int main(int argc, char *argv[])
                if (verbose && mnt_err)
                        printf(_("%s: giving up \"%s\"\n"),
                                progname, spec);
-               exit(0);
        }
 
 out: