diff options
-rw-r--r-- | xlators/nfs/server/src/nfs.c | 58 |
1 files changed, 54 insertions, 4 deletions
diff --git a/xlators/nfs/server/src/nfs.c b/xlators/nfs/server/src/nfs.c index bdb8a1c9a..ebc6911b9 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} }, |