diff options
| author | Pranith Kumar K <pkarampu@redhat.com> | 2013-07-11 12:52:11 +0530 | 
|---|---|---|
| committer | Vijay Bellur <vbellur@redhat.com> | 2013-07-12 10:30:02 -0700 | 
| commit | b92b98ef9a2d912273aeb29a82ffd25831a8eec3 (patch) | |
| tree | 94b807b62e3d10aad3124a3101584a625bd90b2c /glusterfsd/src/glusterfsd.c | |
| parent | 377eb7c1f8d661405d80f38af2048b588d414ae9 (diff) | |
mount/fuse: Provide option to use/not use kernel-readdirpv3.4.0
By default fuse kernel readdirp usage in fuse xlator is off.
When mount option use-readdirp=yes is provided it starts using
fuse-kernel's readdirp.
BUG: 983477
Change-Id: Ibdaf1407d6f2a782a4a1916fad374f36fca6c5e7
Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
Reviewed-on: http://review.gluster.org/5323
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
Diffstat (limited to 'glusterfsd/src/glusterfsd.c')
| -rw-r--r-- | glusterfsd/src/glusterfsd.c | 32 | 
1 files changed, 32 insertions, 0 deletions
diff --git a/glusterfsd/src/glusterfsd.c b/glusterfsd/src/glusterfsd.c index 28de24e8da6..6dabd6a48e3 100644 --- a/glusterfsd/src/glusterfsd.c +++ b/glusterfsd/src/glusterfsd.c @@ -198,6 +198,9 @@ static struct argp_option gf_options[] = {           "Enable internal memory accounting"},          {"fuse-mountopts", ARGP_FUSE_MOUNTOPTS_KEY, "OPTIONS", OPTION_HIDDEN,           "Extra mount options to pass to FUSE"}, +        {"use-readdirp", ARGP_FUSE_USE_READDIRP_KEY, "BOOL", OPTION_ARG_OPTIONAL, +         "Use readdirp mode in fuse kernel module" +         " [default: \"off\"]"},          {0, 0, 0, 0, "Miscellaneous Options:"},          {0, }  }; @@ -440,6 +443,16 @@ set_fuse_mount_options (glusterfs_ctx_t *ctx, dict_t *options)                          goto err;                  }          } + +        if (cmd_args->use_readdirp) { +                ret = dict_set_str (options, "use-readdirp", +                                    cmd_args->use_readdirp); +                if (ret < 0) { +                        gf_log ("glusterfsd", GF_LOG_ERROR, "failed to set dict" +                                " value for key use-readdirp"); +                        goto err; +                } +        }          ret = 0;  err:          return ret; @@ -949,6 +962,25 @@ parse_opts (int key, char *arg, struct argp_state *state)          case ARGP_FUSE_MOUNTOPTS_KEY:                  cmd_args->fuse_mountopts = gf_strdup (arg);                  break; + +        case ARGP_FUSE_USE_READDIRP_KEY: +                if (!arg) +                        arg = "no"; + +                if (gf_string2boolean (arg, &b) == 0) { +                        if (b) { +                                cmd_args->use_readdirp = "yes"; +                        } else { +                                cmd_args->use_readdirp = "no"; +                        } + +                        break; +                } + +                argp_failure (state, -1, 0, +                              "unknown use-readdirp setting \"%s\"", arg); +                break; +  	}          return 0;  | 
