diff options
| author | Csaba Henk <csaba@gluster.com> | 2010-08-30 08:24:50 +0000 | 
|---|---|---|
| committer | Vijay Bellur <vijay@dev.gluster.com> | 2010-08-30 22:47:33 -0700 | 
| commit | 507ee7301f2372a20c28897d60e1ec753539d886 (patch) | |
| tree | 6d98a08a31729f66677cb88735e793580f475603 | |
| parent | 1a1052461546576092f2f3b90c1f0f66817b18c2 (diff) | |
fuse: have the fsname passed to mount(2) include the volfile id
Signed-off-by: Csaba Henk <csaba@gluster.com>
Signed-off-by: Vijay Bellur <vijay@dev.gluster.com>
BUG: 1478 (show volfile id in mount(8) output)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1478
| -rw-r--r-- | xlators/mount/fuse/src/fuse-bridge.c | 29 | 
1 files changed, 26 insertions, 3 deletions
diff --git a/xlators/mount/fuse/src/fuse-bridge.c b/xlators/mount/fuse/src/fuse-bridge.c index ef433d0a046..aea0f88b0c1 100644 --- a/xlators/mount/fuse/src/fuse-bridge.c +++ b/xlators/mount/fuse/src/fuse-bridge.c @@ -3425,11 +3425,13 @@ init (xlator_t *this_xl)          int                ret = 0;          dict_t            *options = NULL;          char              *value_string = NULL; +        cmd_args_t        *cmd_args = NULL;          char              *fsname = NULL;          fuse_private_t    *priv = NULL;          struct stat        stbuf = {0,};          int                i = 0;          int                xl_name_allocated = 0; +        int                fsname_allocated = 0;          if (this_xl == NULL)                  return -1; @@ -3545,9 +3547,28 @@ init (xlator_t *this_xl)                  priv->fuse_dump_fd = ret;          } -        fsname = this_xl->ctx->cmd_args.volfile; -        fsname = (fsname ? fsname : this_xl->ctx->cmd_args.volfile_server); -        fsname = (fsname ? fsname : "glusterfs"); +        cmd_args = &this_xl->ctx->cmd_args; +        fsname = cmd_args->volfile; +        if (!fsname && cmd_args->volfile_server) { +                if (cmd_args->volfile_id) { +                        fsname = GF_MALLOC ( +                                   strlen (cmd_args->volfile_server) + 1 + +                                   strlen (cmd_args->volfile_server) + 1, +                                   gf_fuse_mt_fuse_private_t); +                        if (!fsname) { +                                gf_log ("glusterfs-fuse", GF_LOG_ERROR, +                                        "Out of memory"); +                                goto cleanup_exit; +                        } +                        fsname_allocated = 1; +                        strcpy (fsname, cmd_args->volfile_server); +                        strcat (fsname, ":"); +                        strcat (fsname, cmd_args->volfile_id); +                } else +                        fsname = cmd_args->volfile_server; +        } +        if (!fsname) +                fsname = "glusterfs";          priv->fd = gf_fuse_mount (priv->mount_point, fsname, @@ -3578,6 +3599,8 @@ init (xlator_t *this_xl)  cleanup_exit:          if (xl_name_allocated)                  GF_FREE (this_xl->name); +        if (fsname_allocated) +                GF_FREE (fsname);          if (priv) {                  GF_FREE (priv->mount_point);                  close (priv->fd);  | 
