summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChuck Lever <chuck.lever@oracle.com>2007-09-11 18:01:04 -0400
committerTrond Myklebust <Trond.Myklebust@netapp.com>2007-10-09 17:17:06 -0400
commit0ac83779fa5bffb90e32a97abc61f1840af31ee9 (patch)
tree330ecddbeaaf2ba5980bf4377c6726682751fdc8
parentaad700073557c7932ef9f81c19a5e0647f8a6850 (diff)
downloadblackbird-obmc-linux-0ac83779fa5bffb90e32a97abc61f1840af31ee9.tar.gz
blackbird-obmc-linux-0ac83779fa5bffb90e32a97abc61f1840af31ee9.zip
NFS: Add new 'mountaddr=' mount option
I got the 'mounthost=' option wrong - it shouldn't look for an address value, but rather a hostname value. However, the in-kernel mount client and NFS client cannot resolve a hostname by themselves; they rely on user-land to pass in the resolved address. Create a new mount option that does take an address so that the mount program's address can be passed in. The mount hostname is now ignored by the kernel. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
-rw-r--r--fs/nfs/super.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/fs/nfs/super.c b/fs/nfs/super.c
index 094d2f832c3c..a955821b8499 100644
--- a/fs/nfs/super.c
+++ b/fs/nfs/super.c
@@ -73,6 +73,7 @@ struct nfs_parsed_mount_data {
struct {
struct sockaddr_in address;
+ char *hostname;
unsigned int program;
unsigned int version;
unsigned short port;
@@ -116,7 +117,7 @@ enum {
/* Mount options that take string arguments */
Opt_sec, Opt_proto, Opt_mountproto,
- Opt_addr, Opt_mounthost, Opt_clientaddr,
+ Opt_addr, Opt_mountaddr, Opt_clientaddr,
/* Mount options that are ignored */
Opt_userspace, Opt_deprecated,
@@ -175,7 +176,8 @@ static match_table_t nfs_mount_option_tokens = {
{ Opt_mountproto, "mountproto=%s" },
{ Opt_addr, "addr=%s" },
{ Opt_clientaddr, "clientaddr=%s" },
- { Opt_mounthost, "mounthost=%s" },
+ { Opt_userspace, "mounthost=%s" },
+ { Opt_mountaddr, "mountaddr=%s" },
{ Opt_err, NULL }
};
@@ -961,7 +963,7 @@ static int nfs_parse_mount_options(char *raw,
goto out_nomem;
mnt->client_address = string;
break;
- case Opt_mounthost:
+ case Opt_mountaddr:
string = match_strdup(args);
if (string == NULL)
goto out_nomem;
OpenPOWER on IntegriCloud