Opt_nfsvers,
 
        /* Mount options that take string arguments */
-       Opt_sec, Opt_proto, Opt_mountproto,
+       Opt_sec, Opt_proto, Opt_mountproto, Opt_mounthost,
        Opt_addr, Opt_mountaddr, Opt_clientaddr,
 
        /* Mount options that are ignored */
        { Opt_mountproto, "mountproto=%s" },
        { Opt_addr, "addr=%s" },
        { Opt_clientaddr, "clientaddr=%s" },
-       { Opt_userspace, "mounthost=%s" },
+       { Opt_mounthost, "mounthost=%s" },
        { Opt_mountaddr, "mountaddr=%s" },
 
        { Opt_err, NULL }
                                goto out_nomem;
                        mnt->client_address = string;
                        break;
+               case Opt_mounthost:
+                       string = match_strdup(args);
+                       if (string == NULL)
+                               goto out_nomem;
+                       mnt->mount_server.hostname = string;
+                       break;
                case Opt_mountaddr:
                        string = match_strdup(args);
                        if (string == NULL)
 {
        struct sockaddr_in sin;
        int status;
+       char *hostname;
 
        if (args->mount_server.version == 0) {
                if (args->flags & NFS_MOUNT_VER3)
                        args->mount_server.version = NFS_MNT_VERSION;
        }
 
+       if (args->mount_server.hostname)
+               hostname = args->mount_server.hostname;
+       else
+               hostname = args->nfs_server.hostname;
+
        /*
         * Construct the mount server's address.
         */
         */
        status = nfs_mount((struct sockaddr *) &sin,
                           sizeof(sin),
-                          args->nfs_server.hostname,
+                          hostname,
                           args->nfs_server.export_path,
                           args->mount_server.version,
                           args->mount_server.protocol,
        if (status == 0)
                return 0;
 
-       dfprintk(MOUNT, "NFS: unable to mount server " NIPQUAD_FMT
-                       ", error %d\n", NIPQUAD(sin.sin_addr.s_addr), status);
+       dfprintk(MOUNT, "NFS: unable to mount server %s, error %d",
+                       hostname, status);
        return status;
 }
 
 
 out:
        kfree(data.nfs_server.hostname);
+       kfree(data.mount_server.hostname);
        return error;
 
 out_err_nosb: