From a7b514ab8ec879a67e5a290743b4be6f0b58de1d Mon Sep 17 00:00:00 2001 From: Harshavardhana Date: Thu, 19 Feb 2009 04:59:29 -0800 Subject: command line and mount/fuse now use float attr/entry timeouts Signed-off-by: Anand V. Avati --- doc/translator-options.txt | 4 ++-- glusterfsd/src/glusterfsd.c | 23 +++++++++++++---------- xlators/mount/fuse/src/fuse-bridge.c | 20 ++++++++------------ 3 files changed, 23 insertions(+), 24 deletions(-) diff --git a/doc/translator-options.txt b/doc/translator-options.txt index 3d8402be5fc..38b04b5fc21 100644 --- a/doc/translator-options.txt +++ b/doc/translator-options.txt @@ -2,8 +2,8 @@ mount/fuse: * direct-io-mode GF_OPTION_TYPE_BOOL on|off|yes|no * macfuse-local GF_OPTION_TYPE_BOOL on|off|yes|no * mount-point (mountpoint) GF_OPTION_TYPE_PATH - * attribute-timeout GF_OPTION_TYPE_TIME 0-3600 - * entry-timeout GF_OPTION_TYPE_TIME 0-3600 + * attribute-timeout GF_OPTION_TYPE_DOUBLE 0.0 + * entry-timeout GF_OPTION_TYPE_DOUBLE 0.0 protocol/server: * transport-type GF_OPTION_TYPE_STR tcp|socket|ib-verbs|unix|ib-sdp| diff --git a/glusterfsd/src/glusterfsd.c b/glusterfsd/src/glusterfsd.c index 545f40e80f8..809a4ffa9c7 100644 --- a/glusterfsd/src/glusterfsd.c +++ b/glusterfsd/src/glusterfsd.c @@ -230,10 +230,10 @@ _add_fuse_mount (xlator_t *graph) } if (cmd_args->fuse_attribute_timeout) - ret = dict_set_uint32 (top->options, ZR_ATTR_TIMEOUT_OPT, + ret = dict_set_double (top->options, ZR_ATTR_TIMEOUT_OPT, cmd_args->fuse_attribute_timeout); if (cmd_args->fuse_entry_timeout) - ret = dict_set_uint32 (top->options, ZR_ENTRY_TIMEOUT_OPT, + ret = dict_set_double (top->options, ZR_ENTRY_TIMEOUT_OPT, cmd_args->fuse_entry_timeout); #ifdef GF_DARWIN_HOST_OS @@ -641,7 +641,8 @@ parse_opts (int key, char *arg, struct argp_state *state) { cmd_args_t *cmd_args = NULL; uint32_t n = 0; - + double d = 0.0; + cmd_args = state->input; switch (key) { @@ -731,10 +732,11 @@ parse_opts (int key, char *arg, struct argp_state *state) break; case ARGP_ENTRY_TIMEOUT_KEY: - n = 0; + d = 0.0; - if (gf_string2uint_base10 (arg, &n) == 0) { - cmd_args->fuse_entry_timeout = n; + gf_string2double (arg, &d); + if (!(d < 0.0)) { + cmd_args->fuse_entry_timeout = d; break; } @@ -742,10 +744,11 @@ parse_opts (int key, char *arg, struct argp_state *state) break; case ARGP_ATTRIBUTE_TIMEOUT_KEY: - n = 0; - - if (gf_string2uint_base10 (arg, &n) == 0) { - cmd_args->fuse_attribute_timeout = n; + d = 0.0; + + gf_string2double (arg, &d); + if (!(d < 0.0)) { + cmd_args->fuse_attribute_timeout = d; break; } diff --git a/xlators/mount/fuse/src/fuse-bridge.c b/xlators/mount/fuse/src/fuse-bridge.c index 8e70558782d..43d3af76ac5 100644 --- a/xlators/mount/fuse/src/fuse-bridge.c +++ b/xlators/mount/fuse/src/fuse-bridge.c @@ -70,8 +70,8 @@ struct fuse_private { pthread_t fuse_thread; char fuse_thread_started; uint32_t direct_io_mode; - uint32_t entry_timeout; - uint32_t attribute_timeout; + double entry_timeout; + double attribute_timeout; }; typedef struct fuse_private fuse_private_t; @@ -2720,15 +2720,15 @@ init (xlator_t *this_xl) priv->mount_point = strdup (value_string); - ret = dict_get_uint32 (options, "attribute-timeout", + ret = dict_get_double (options, "attribute-timeout", &priv->attribute_timeout); if (!priv->attribute_timeout) - priv->attribute_timeout = 1; /* default */ + priv->attribute_timeout = 1.0; /* default */ - ret = dict_get_uint32 (options, "entry-timeout", + ret = dict_get_double (options, "entry-timeout", &priv->entry_timeout); if (!priv->entry_timeout) - priv->entry_timeout = 1; /* default */ + priv->entry_timeout = 1.0; /* default */ priv->direct_io_mode = 1; @@ -2846,14 +2846,10 @@ struct volume_options options[] = { .type = GF_OPTION_TYPE_PATH }, { .key = {"attribute-timeout"}, - .type = GF_OPTION_TYPE_TIME, - .min = 0, - .max = 3600 + .type = GF_OPTION_TYPE_DOUBLE }, { .key = {"entry-timeout"}, - .type = GF_OPTION_TYPE_TIME, - .min = 0, - .max = 3600 + .type = GF_OPTION_TYPE_DOUBLE }, { .key = {NULL} }, }; -- cgit