summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShehjar Tikoo <shehjart@gluster.com>2010-11-08 06:25:18 +0000
committerAnand V. Avati <avati@dev.gluster.com>2010-11-09 02:12:03 -0800
commite3808ac86f8ff5baebea59e610a791cef5f5f2c9 (patch)
treed44501f1c7aba17b23a842744169e6d96892e7b1
parentbe5c02a81c19336a6b922b1e1f28293c90955e7f (diff)
nfs: Support nfs.port to allow changing nfs port numbers
Signed-off-by: Shehjar Tikoo <shehjart@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 1743 (XenServer is not compatible with GlusterNFS) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1743
-rw-r--r--xlators/nfs/server/src/nfs.c25
-rw-r--r--xlators/nfs/server/src/nfs.h1
2 files changed, 26 insertions, 0 deletions
diff --git a/xlators/nfs/server/src/nfs.c b/xlators/nfs/server/src/nfs.c
index 3dbb0bc456c..ec939a55e48 100644
--- a/xlators/nfs/server/src/nfs.c
+++ b/xlators/nfs/server/src/nfs.c
@@ -120,6 +120,8 @@ nfs_init_versions (struct nfs_state *nfs, xlator_t *this)
goto err;
}
+ if (nfs->override_portnum)
+ prog->progport = nfs->override_portnum;
gf_log (GF_NFS, GF_LOG_DEBUG, "Starting program: %s",
prog->progname);
ret = nfs_rpcsvc_program_register (nfs->rpcsvc, *prog);
@@ -539,6 +541,24 @@ nfs_init_state (xlator_t *this)
if (boolt == _gf_true)
nfs->enable_ino32 = 1;
}
+
+ nfs->override_portnum = 0;
+ if (dict_get (this->options, "nfs.port")) {
+ ret = dict_get_str (this->options, "nfs.port",
+ &optstr);
+ if (ret < 0) {
+ gf_log (GF_NFS, GF_LOG_ERROR, "Failed to parse dict");
+ goto free_foppool;
+ }
+
+ ret = gf_string2uint (optstr, &nfs->override_portnum);
+ if (ret < 0) {
+ gf_log (GF_NFS, GF_LOG_ERROR, "Failed to parse uint "
+ "string");
+ goto free_foppool;
+ }
+ }
+
this->private = (void *)nfs;
INIT_LIST_HEAD (&nfs->versions);
@@ -865,6 +885,11 @@ struct volume_options options[] = {
"portmap service. Use this option to turn off portmap "
"registration for Gluster NFS. On by default"
},
+ { .key = {"nfs.port"},
+ .type = GF_OPTION_TYPE_INT,
+ .description = "Use this option on systems that need Gluster NFS to "
+ "be associated with a non-default port number."
+ },
{ .key = {NULL} },
};
diff --git a/xlators/nfs/server/src/nfs.h b/xlators/nfs/server/src/nfs.h
index 8cbcf63bb2d..6d7ed2f0422 100644
--- a/xlators/nfs/server/src/nfs.h
+++ b/xlators/nfs/server/src/nfs.h
@@ -74,6 +74,7 @@ struct nfs_state {
int subvols_started;
int dynamicvolumes;
int enable_ino32;
+ unsigned int override_portnum;
};
#define gf_nfs_dvm_on(nfsstt) (((struct nfs_state *)nfsstt)->dynamicvolumes == GF_NFS_DVM_ON)