diff options
Diffstat (limited to 'libglusterfs/src/statedump.c')
| -rw-r--r-- | libglusterfs/src/statedump.c | 61 | 
1 files changed, 15 insertions, 46 deletions
diff --git a/libglusterfs/src/statedump.c b/libglusterfs/src/statedump.c index 412a47b9383..34b8061425c 100644 --- a/libglusterfs/src/statedump.c +++ b/libglusterfs/src/statedump.c @@ -501,14 +501,21 @@ gf_proc_dump_dict_info (glusterfs_ctx_t *ctx)                              (total_pairs / total_dicts));  } -static void -gf_proc_dump_per_xlator_info (xlator_t *top) +void +gf_proc_dump_xlator_info (xlator_t *top)  { -        xlator_t        *trav = top; -        glusterfs_ctx_t *ctx = top->ctx; +        xlator_t        *trav = NULL; +        glusterfs_ctx_t *ctx = NULL;          char             itable_key[1024] = {0,}; -        while (trav && !trav->cleanup_starting) { +        if (!top) +                return; + +        ctx = top->ctx; + +        trav = top; +        while (trav) { +                  if (ctx->measure_latency)                          gf_proc_dump_latency_info (trav); @@ -532,6 +539,7 @@ gf_proc_dump_per_xlator_info (xlator_t *top)                  if (GF_PROC_DUMP_IS_XL_OPTION_ENABLED (inode) &&                      (trav->dumpops->inode))                          trav->dumpops->inode (trav); +                  if (trav->dumpops->fd &&                      GF_PROC_DUMP_IS_XL_OPTION_ENABLED (fd))                          trav->dumpops->fd (trav); @@ -542,30 +550,6 @@ gf_proc_dump_per_xlator_info (xlator_t *top)                  trav = trav->next;          } -} - - - -void -gf_proc_dump_xlator_info (xlator_t *top, gf_boolean_t brick_mux) -{ -        xlator_t        *trav = NULL; -        xlator_list_t   **trav_p        = NULL; - -        if (!top) -                return; - -        trav = top; -        gf_proc_dump_per_xlator_info (trav); - -        if (brick_mux) { -                trav_p = &top->children; -                while (*trav_p) { -                        trav = (*trav_p)->xlator; -                        gf_proc_dump_per_xlator_info (trav); -                        trav_p = &(*trav_p)->next; -                } -        }          return;  } @@ -819,27 +803,12 @@ gf_proc_dump_info (int signum, glusterfs_ctx_t *ctx)          char               tmp_dump_name[PATH_MAX] = {0,};          char               path[PATH_MAX]          = {0,};          struct timeval     tv                      = {0,}; -        gf_boolean_t       is_brick_mux            = _gf_false; -        xlator_t          *top                     = NULL; -        xlator_list_t    **trav_p                 = NULL; -        int                brick_count            = 0;          gf_proc_dump_lock ();          if (!ctx)                  goto out; -        if (ctx) { -                top = ctx->active->first; -                for (trav_p = &top->children; *trav_p; -                                     trav_p = &(*trav_p)->next) { -                        brick_count++; -                } - -                if (brick_count > 1) -                        is_brick_mux = _gf_true; -        } -          if (ctx->cmd_args.brick_name) {                  GF_REMOVE_SLASH_FROM_PATH (ctx->cmd_args.brick_name, brick_name);          } else @@ -899,12 +868,12 @@ gf_proc_dump_info (int signum, glusterfs_ctx_t *ctx)          if (ctx->master) {                  gf_proc_dump_add_section ("fuse"); -                gf_proc_dump_xlator_info (ctx->master, _gf_false); +                gf_proc_dump_xlator_info (ctx->master);          }          if (ctx->active) {                  gf_proc_dump_add_section ("active graph - %d", ctx->graph_id); -                gf_proc_dump_xlator_info (ctx->active->top, is_brick_mux); +                gf_proc_dump_xlator_info (ctx->active->top);          }          i = 0;  | 
