summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--xlators/nfs/server/src/nfs.c58
1 files changed, 54 insertions, 4 deletions
diff --git a/xlators/nfs/server/src/nfs.c b/xlators/nfs/server/src/nfs.c
index bdb8a1c9a61..ebc6911b9b3 100644
--- a/xlators/nfs/server/src/nfs.c
+++ b/xlators/nfs/server/src/nfs.c
@@ -474,6 +474,7 @@ nfs_init_state (xlator_t *this)
unsigned int fopspoolsize = 0;
char *optstr = NULL;
gf_boolean_t boolt = _gf_false;
+ char *def_val = NULL;
if (!this)
return NULL;
@@ -498,7 +499,21 @@ nfs_init_state (xlator_t *this)
goto free_nfs;
}
- nfs->memfactor = GF_NFS_DEFAULT_MEMFACTOR;
+ if (xlator_get_volopt_info (&this->volume_options, "nfs.mem-factor",
+ &def_val, NULL)) {
+ gf_log (this->name, GF_LOG_ERROR, "Default value of "
+ "nfs.mem-factor not found");
+ ret = -1;
+ goto free_rpcsvc;
+ } else {
+ if (gf_string2uint (def_val, &nfs->memfactor)) {
+ gf_log (this->name, GF_LOG_ERROR, "Default value of "
+ "nfs.mem-factor corrupt");
+ ret = -1;
+ goto free_rpcsvc;
+ }
+ }
+
if (dict_get (this->options, "nfs.mem-factor")) {
ret = dict_get_str (this->options, "nfs.mem-factor",
&optstr);
@@ -544,7 +559,21 @@ nfs_init_state (xlator_t *this)
nfs->dynamicvolumes = GF_NFS_DVM_ON;
}
- nfs->enable_ino32 = 0;
+ if (xlator_get_volopt_info (&this->volume_options, "nfs.enable-ino32",
+ &def_val, NULL)) {
+ gf_log (this->name, GF_LOG_ERROR, "Default value of "
+ "nfs.enable-ino32 not found");
+ ret = -1;
+ goto free_foppool;
+ } else {
+ if (gf_string2boolean (def_val,(gf_boolean_t *) &nfs->enable_ino32 )) {
+ gf_log (this->name, GF_LOG_ERROR, "Default value of "
+ "nfs.enable-ino32 corrupt");
+ ret = -1;
+ goto free_foppool;
+ }
+ }
+
if (dict_get (this->options, "nfs.enable-ino32")) {
ret = dict_get_str (this->options, "nfs.enable-ino32",
&optstr);
@@ -773,11 +802,13 @@ struct volume_options options[] = {
{ .key = {"nfs3.*.volume-access"},
.type = GF_OPTION_TYPE_STR,
.value = {"read-only", "read-write"},
+ .default_value = "read-write",
.description = "Type of access desired for this subvolume: "
" read-only, read-write(default)"
},
{ .key = {"nfs3.*.trusted-write"},
.type = GF_OPTION_TYPE_BOOL,
+ .default_value = "off",
.description = "On an UNSTABLE write from client, return STABLE flag"
" to force client to not send a COMMIT request. In "
"some environments, combined with a replicated "
@@ -792,6 +823,7 @@ struct volume_options options[] = {
},
{ .key = {"nfs3.*.trusted-sync"},
.type = GF_OPTION_TYPE_BOOL,
+ .default_value = "off",
.description = "All writes and COMMIT requests are treated as async."
" This implies that no write requests are guaranteed"
" to be on server disks when the write reply is "
@@ -801,6 +833,7 @@ struct volume_options options[] = {
},
{ .key = {"nfs3.*.export-dir"},
.type = GF_OPTION_TYPE_STR,
+ .default_value = "",
.description = "By default, all subvolumes of nfs are exported as "
"individual exports. There are cases where a "
"subdirectory or subdirectories in the volume need to "
@@ -811,6 +844,7 @@ struct volume_options options[] = {
},
{ .key = {"nfs3.export-dirs"},
.type = GF_OPTION_TYPE_BOOL,
+ .default_value = "on",
.description = "By default, all subvolumes of nfs are exported as "
"individual exports. There are cases where a "
"subdirectory or subdirectories in the volume need to "
@@ -820,6 +854,7 @@ struct volume_options options[] = {
},
{ .key = {"nfs3.export-volumes"},
.type = GF_OPTION_TYPE_BOOL,
+ .default_value = "on",
.description = "Enable or disable exporting whole volumes, instead "
"if used in conjunction with nfs3.export-dir, can "
"allow setting up only subdirectories as exports. On "
@@ -827,6 +862,7 @@ struct volume_options options[] = {
},
{ .key = {"rpc-auth.auth-unix"},
.type = GF_OPTION_TYPE_BOOL,
+ .default_value = "",
.description = "Disable or enable the AUTH_UNIX authentication type."
"Must always be enabled for better interoperability."
"However, can be disabled if needed. Enabled by"
@@ -834,12 +870,14 @@ struct volume_options options[] = {
},
{ .key = {"rpc-auth.auth-null"},
.type = GF_OPTION_TYPE_BOOL,
+ .default_value = "",
.description = "Disable or enable the AUTH_NULL authentication type."
"Must always be enabled. This option is here only to"
" avoid unrecognized option warnings"
},
{ .key = {"rpc-auth.auth-unix.*"},
.type = GF_OPTION_TYPE_BOOL,
+ .default_value = "on",
.description = "Disable or enable the AUTH_UNIX authentication type "
"for a particular exported volume over-riding defaults"
" and general setting for AUTH_UNIX scheme. Must "
@@ -857,6 +895,7 @@ struct volume_options options[] = {
},
{ .key = {"rpc-auth.addr.allow"},
.type = GF_OPTION_TYPE_STR,
+ .default_value = "",
.description = "Allow a comma separated list of addresses and/or"
" hostnames to connect to the server. By default, all"
" connections are disallowed. This allows users to "
@@ -864,6 +903,7 @@ struct volume_options options[] = {
},
{ .key = {"rpc-auth.addr.reject"},
.type = GF_OPTION_TYPE_STR,
+ .default_value = "",
.description = "Reject a comma separated list of addresses and/or"
" hostnames from connecting to the server. By default,"
" all connections are disallowed. This allows users to"
@@ -871,6 +911,7 @@ struct volume_options options[] = {
},
{ .key = {"rpc-auth.addr.*.allow"},
.type = GF_OPTION_TYPE_STR,
+ .default_value = "",
.description = "Allow a comma separated list of addresses and/or"
" hostnames to connect to the server. By default, all"
" connections are disallowed. This allows users to "
@@ -878,6 +919,7 @@ struct volume_options options[] = {
},
{ .key = {"rpc-auth.addr.*.reject"},
.type = GF_OPTION_TYPE_STR,
+ .default_value = "",
.description = "Reject a comma separated list of addresses and/or"
" hostnames from connecting to the server. By default,"
" all connections are disallowed. This allows users to"
@@ -885,6 +927,7 @@ struct volume_options options[] = {
},
{ .key = {"rpc-auth.ports.insecure"},
.type = GF_OPTION_TYPE_BOOL,
+ .default_value = "off",
.description = "Allow client connections from unprivileged ports. By "
"default only privileged ports are allowed. This is a"
"global setting in case insecure ports are to be "
@@ -892,6 +935,7 @@ struct volume_options options[] = {
},
{ .key = {"rpc-auth.ports.*.insecure"},
.type = GF_OPTION_TYPE_BOOL,
+ .default_value = "",
.description = "Allow client connections from unprivileged ports. By "
"default only privileged ports are allowed. Use this"
" option to set enable or disable insecure ports for "
@@ -900,6 +944,7 @@ struct volume_options options[] = {
},
{ .key = {"rpc-auth.addr.namelookup"},
.type = GF_OPTION_TYPE_BOOL,
+ .default_value = "on",
.description = "Users have the option of turning off name lookup for"
" incoming client connections using this option. In some "
"setups, the name server can take too long to reply to DNS "
@@ -925,6 +970,7 @@ struct volume_options options[] = {
},
{ .key = {"nfs.enable-ino32"},
.type = GF_OPTION_TYPE_BOOL,
+ .default_value = "off",
.description = "For nfs clients or apps that do not support 64-bit "
"inode numbers, use this option to make NFS return "
"32-bit inode numbers instead. Disabled by default so "
@@ -932,6 +978,7 @@ struct volume_options options[] = {
},
{ .key = {"rpc.register-with-portmap"},
.type = GF_OPTION_TYPE_BOOL,
+ .default_value = "on",
.description = "For systems that need to run multiple nfs servers, we"
"need to prevent more than one from registering with "
"portmap service. Use this option to turn off portmap "
@@ -939,11 +986,13 @@ struct volume_options options[] = {
},
{ .key = {"nfs.port"},
.type = GF_OPTION_TYPE_INT,
+ .default_value = "",
.description = "Use this option on systems that need Gluster NFS to "
"be associated with a non-default port number."
},
{ .key = {"nfs.mem-factor"},
.type = GF_OPTION_TYPE_INT,
+ .default_value = "15",
.description = "Use this option to make NFS be faster on systems by "
"using more memory. This option specifies a multiple "
"that determines the total amount of memory used. "
@@ -952,9 +1001,10 @@ struct volume_options options[] = {
"Please consult gluster-users list before using this "
"option."
},
- { .key = {"nfs3.*.disable"},
+ { .key = {"nfs-disable"},
.type = GF_OPTION_TYPE_BOOL,
- .description = "This option is used to start or stop NFS server"
+ .default_value = "off",
+ .description = "This option is used to enable/disable NFS server"
"for individual volume."
},
{ .key = {NULL} },