diff options
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-volgen.c | 28 | ||||
| -rw-r--r-- | xlators/nfs/server/src/nfs.c | 55 | 
2 files changed, 61 insertions, 22 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-volgen.c b/xlators/mgmt/glusterd/src/glusterd-volgen.c index 31e9fa379..73f966c97 100644 --- a/xlators/mgmt/glusterd/src/glusterd-volgen.c +++ b/xlators/mgmt/glusterd/src/glusterd-volgen.c @@ -1925,8 +1925,6 @@ _free_xlator_opt_key (char *key)  int  glusterd_get_volopt_content (dict_t * ctx, gf_boolean_t xml_out)  { - -        char                    *xlator_type = NULL;          void                    *dl_handle = NULL;          volume_opt_list_t        vol_opt_handle = {{0},};          char                    *key = NULL; @@ -1959,21 +1957,29 @@ glusterd_get_volopt_content (dict_t * ctx, gf_boolean_t xml_out)                          descr = vme->description;                          def_val = vme->value;                  } else { -                        if (_get_xlator_opt_key_from_vme (vme, &key)) +                        if (_get_xlator_opt_key_from_vme (vme, &key)) { +                                gf_log ("glusterd", GF_LOG_DEBUG, "Failed to " +                                        "get %s key from volume option entry", +                                        vme->key);                                  goto out; /*Some error while geting key*/ +                        } -                        if (!xlator_type || strcmp (vme->voltype, xlator_type)){ -                                ret = xlator_volopt_dynload (vme->voltype, -                                                             &dl_handle, -                                                             &vol_opt_handle); -                                if (ret) { -                                        ret = 0; -                                        goto cont; -                                } +                        ret = xlator_volopt_dynload (vme->voltype, +                                                     &dl_handle, +                                                     &vol_opt_handle); + +                        if (ret) { +                                gf_log ("glusterd", GF_LOG_DEBUG, +                                        "xlator_volopt_dynload error(%d)", ret); +                                ret = 0; +                                goto cont;                          } +                          ret = xlator_option_info_list (&vol_opt_handle, key,                                                         &def_val, &descr);                          if (ret) { /*Swallow Error i.e if option not found*/ +                                gf_log ("glusterd", GF_LOG_DEBUG, +                                        "Failed to get option for %s key", key);                                  ret = 0;                                  goto cont;                          } diff --git a/xlators/nfs/server/src/nfs.c b/xlators/nfs/server/src/nfs.c index 1d59ad399..8bb3fccf2 100644 --- a/xlators/nfs/server/src/nfs.c +++ b/xlators/nfs/server/src/nfs.c @@ -44,6 +44,9 @@  #include "options.h"  #include "acl3.h" +#define STRINGIFY(val) #val +#define TOSTRING(val) STRINGIFY(val) +  #define OPT_SERVER_AUX_GIDS             "nfs.server-aux-gids"  #define OPT_SERVER_GID_CACHE_TIMEOUT    "nfs.server.aux-gid-timeout" @@ -747,10 +750,10 @@ nfs_init_state (xlator_t *this)          GF_OPTION_INIT (OPT_SERVER_GID_CACHE_TIMEOUT, nfs->server_aux_gids_max_age,                          uint32, free_foppool); -	if (gid_cache_init(&nfs->gid_cache, nfs->server_aux_gids_max_age) < 0) { -		gf_log(GF_NFS, GF_LOG_ERROR, "Failed to initialize group cache."); -		goto free_foppool; -	} +        if (gid_cache_init(&nfs->gid_cache, nfs->server_aux_gids_max_age) < 0) { +                gf_log(GF_NFS, GF_LOG_ERROR, "Failed to initialize group cache."); +                goto free_foppool; +        }          if (stat("/sbin/rpc.statd", &stbuf) == -1) {                  gf_log (GF_NFS, GF_LOG_WARNING, "/sbin/rpc.statd not found. " @@ -1019,29 +1022,34 @@ struct xlator_dumpops dumpops = {  struct volume_options options[] = {          { .key  = {"nfs3.read-size"},            .type = GF_OPTION_TYPE_SIZET, +          .default_value = TOSTRING(GF_NFS3_RTPREF),            .description = "Size in which the client should issue read requests"                           " to the Gluster NFSv3 server. Must be a multiple of"                           " 4KB."          },          { .key  = {"nfs3.write-size"},            .type = GF_OPTION_TYPE_SIZET, +          .default_value = TOSTRING(GF_NFS3_WTPREF),            .description = "Size in which the client should issue write requests"                           " to the Gluster NFSv3 server. Must be a multiple of"                           " 4KB."          },          { .key  = {"nfs3.readdir-size"},            .type = GF_OPTION_TYPE_SIZET, +          .default_value = TOSTRING(GF_NFS3_DTPREF),            .description = "Size in which the client should issue directory "                           " reading requests."          },          { .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 " @@ -1056,6 +1064,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 " @@ -1065,6 +1074,7 @@ struct volume_options options[] = {          },          { .key  = {"nfs3.*.export-dir"},            .type = GF_OPTION_TYPE_PATH, +          .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 " @@ -1075,15 +1085,17 @@ 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 "                           "be exported separately. Enabling this option allows "                           "any directory on a volumes to be exported separately." -                         " Directory exports are enabled by default." +                         "Directory exports are enabled by default."          },          { .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 " @@ -1091,6 +1103,7 @@ struct volume_options options[] = {          },          { .key  = {"rpc-auth.auth-unix"},            .type = GF_OPTION_TYPE_BOOL, +          .default_value = "on",            .description = "Disable or enable the AUTH_UNIX authentication type."                           "Must always be enabled for better interoperability."                           "However, can be disabled if needed. Enabled by" @@ -1098,12 +1111,14 @@ struct volume_options options[] = {          },          { .key  = {"rpc-auth.auth-null"},            .type = GF_OPTION_TYPE_BOOL, +          .default_value = "on",            .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 overriding defaults"                           " and general setting for AUTH_UNIX scheme. Must " @@ -1113,6 +1128,7 @@ struct volume_options options[] = {          },          { .key  = {"rpc-auth.auth-unix.*.allow"},            .type = GF_OPTION_TYPE_STR, +          .default_value = "on",            .description = "Disable or enable the AUTH_UNIX authentication type "                           "for a particular exported volume overriding defaults"                           " and general setting for AUTH_UNIX scheme. Must " @@ -1122,6 +1138,7 @@ struct volume_options options[] = {          },          { .key  = {"rpc-auth.auth-null.*"},            .type = GF_OPTION_TYPE_BOOL, +          .default_value = "on",            .description = "Disable or enable the AUTH_NULL authentication type "                           "for a particular exported volume overriding defaults"                           " and general setting for AUTH_NULL. Must always be " @@ -1130,6 +1147,7 @@ struct volume_options options[] = {          },          { .key  = {"rpc-auth.addr.allow"},            .type = GF_OPTION_TYPE_INTERNET_ADDRESS_LIST, +          .default_value = "all",            .description = "Allow a comma separated list of addresses and/or"                           " hostnames to connect to the server. By default, all"                           " connections are allowed. This allows users to " @@ -1137,6 +1155,7 @@ struct volume_options options[] = {          },          { .key  = {"rpc-auth.addr.reject"},            .type = GF_OPTION_TYPE_INTERNET_ADDRESS_LIST, +          .default_value = "none",            .description = "Reject a comma separated list of addresses and/or"                           " hostnames from connecting to the server. By default,"                           " all connections are allowed. This allows users to" @@ -1144,6 +1163,7 @@ struct volume_options options[] = {          },          { .key  = {"rpc-auth.addr.*.allow"},            .type = GF_OPTION_TYPE_INTERNET_ADDRESS_LIST, +          .default_value = "all",            .description = "Allow a comma separated list of addresses and/or"                           " hostnames to connect to the server. By default, all"                           " connections are allowed. This allows users to " @@ -1151,6 +1171,7 @@ struct volume_options options[] = {          },          { .key  = {"rpc-auth.addr.*.reject"},            .type = GF_OPTION_TYPE_INTERNET_ADDRESS_LIST, +          .default_value = "none",            .description = "Reject a comma separated list of addresses and/or"                           " hostnames from connecting to the server. By default,"                           " all connections are allowed. This allows users to" @@ -1158,6 +1179,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 " @@ -1165,31 +1187,35 @@ 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. Use this"                           " option to enable or disable insecure ports for " -                         "a specific subvolume and to override the global setting " -                         " set by the previous option." +                         "a specific subvolume and to override the global " +                         "setting set by the previous option."          },          { .key  = {"rpc-auth.addr.namelookup"},            .type = GF_OPTION_TYPE_BOOL, +          .default_value = "off",            .description = "Users have the option of turning on name lookup for"                    " incoming client connections using this option. Use this "                    "option to turn on name lookups during address-based "                    "authentication. Turning this on will enable you to"                    " use hostnames in nfs.rpc-auth-* filters. In some "                    "setups, the name server can take too long to reply to DNS " -                  "queries resulting in timeouts of mount requests. By default, " -                  " name lookup is off" +                  "queries resulting in timeouts of mount requests. By " +                  "default, name lookup is off"          },          { .key  = {"nfs.dynamic-volumes"},            .type = GF_OPTION_TYPE_BOOL, +          .default_value = "off",            .description = "Internal option set to tell gnfs to use a different"                           " scheme for encoding file handles when DVM is being"                           " used."          },          { .key  = {"nfs3.*.volume-id"},            .type = GF_OPTION_TYPE_STR, +          .default_value = "",            .description = "When nfs.dynamic-volumes is set, gnfs expects every "                           "subvolume to have this option set for it, so that "                           "gnfs can use this option to identify the volume. " @@ -1198,13 +1224,15 @@ struct volume_options options[] = {          },          { .key  = {"nfs.enable-ino32"},            .type = GF_OPTION_TYPE_BOOL, +          .default_value = "no",            .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 " -                         "NFS returns 64-bit inode numbers." +                         "32-bit inode numbers instead. Disabled by default, so" +                         " NFS returns 64-bit inode numbers."          },          { .key  = {"rpc.register-with-portmap"},            .type = GF_OPTION_TYPE_BOOL, +          .default_value = "on",            .description = "For systems that need to run multiple nfs servers, "                           "only one registration is possible with "                           "portmap service. Use this option to turn off portmap " @@ -1214,6 +1242,7 @@ struct volume_options options[] = {            .type = GF_OPTION_TYPE_INT,            .min  = 1,            .max  = 0xffff, +          .default_value = TOSTRING(GF_NFS3_PORT),            .description = "Use this option on systems that need Gluster NFS to "                           "be associated with a non-default port number."          }, @@ -1221,6 +1250,7 @@ struct volume_options options[] = {            .type = GF_OPTION_TYPE_INT,            .min  = 1,            .max  = 1024, +          .default_value = TOSTRING(GF_NFS_DEFAULT_MEMFACTOR),            .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. " @@ -1231,12 +1261,14 @@ struct volume_options options[] = {          },          { .key  = {"nfs.*.disable"},            .type = GF_OPTION_TYPE_BOOL, +          .default_value = "false",            .description = "This option is used to start or stop NFS server"                           "for individual volume."          },          { .key  = {"nfs.nlm"},            .type = GF_OPTION_TYPE_BOOL, +          .default_value = "on",            .description = "This option, if set to 'off', disables NLM server "                           "by not registering the service with the portmapper."                           " Set it to 'on' to re-enable it. Default value: 'on'" @@ -1244,6 +1276,7 @@ struct volume_options options[] = {          { .key = {"nfs.mount-udp"},            .type = GF_OPTION_TYPE_BOOL, +          .default_value = "off",            .description = "set the option to 'on' to enable mountd on UDP. "                           "Required for some Solaris and AIX NFS clients. "                           "The need for enabling this option often depends "  | 
