diff options
Diffstat (limited to 'glusterfsd/src/glusterfsd-mgmt.c')
| -rw-r--r-- | glusterfsd/src/glusterfsd-mgmt.c | 72 | 
1 files changed, 8 insertions, 64 deletions
diff --git a/glusterfsd/src/glusterfsd-mgmt.c b/glusterfsd/src/glusterfsd-mgmt.c index bce8d5cc276..91c75069627 100644 --- a/glusterfsd/src/glusterfsd-mgmt.c +++ b/glusterfsd/src/glusterfsd-mgmt.c @@ -185,73 +185,18 @@ glusterfs_terminate_response_send (rpcsvc_request_t *req, int op_ret)          return ret;  } -static int -xlator_mem_free (xlator_t *xl) -{ -        volume_opt_list_t *vol_opt = NULL; -        volume_opt_list_t *tmp     = NULL; - -        if (!xl) -                return 0; - -        GF_FREE (xl->name); -        GF_FREE (xl->type); -        xl->name = NULL; -        xl->type = NULL; - -        if (xl->options) { -                dict_ref (xl->options); -                dict_unref (xl->options); -                xl->options = NULL; -        } - -        list_for_each_entry_safe (vol_opt, tmp, &xl->volume_options, list) { -                list_del_init (&vol_opt->list); -                GF_FREE (vol_opt); -        } - -        return 0; -} -  void -xlator_call_fini (xlator_t *this) { -        if (!this) -                return; -        xlator_call_fini (this->next); -        this->fini (this); -} - -void -xlator_mem_cleanup (xlator_t *this) { -        xlator_list_t     *list = this->children; -        xlator_t          *trav = list->xlator; -        inode_table_t     *inode_table = NULL; -        xlator_t          *prev = trav; - -        inode_table = this->itable; - -        xlator_call_fini (trav); - -        while (prev) { -                trav = prev->next; -                xlator_mem_free (prev); -                prev = trav; -        } - -        if (inode_table) { -                inode_table_destroy (inode_table); -                this->itable = NULL; -        } - -        if (this->fini) { -                this->fini (this); -        } - -        xlator_mem_free (this); +glusterfs_autoscale_threads (glusterfs_ctx_t *ctx, int incr, xlator_t *this) +{ +        struct event_pool       *pool           = ctx->event_pool; +        server_conf_t           *conf           = this->private; +        int                      thread_count   = pool->eventthreadcount; +        pool->auto_thread_count += incr; +        (void) event_reconfigure_threads (pool, thread_count+incr); +        rpcsvc_ownthread_reconf (conf->rpc, pool->eventthreadcount);  } -  int  glusterfs_handle_terminate (rpcsvc_request_t *req)  { @@ -318,7 +263,6 @@ glusterfs_handle_terminate (rpcsvc_request_t *req)                  gf_log (THIS->name, GF_LOG_INFO, "detaching not-only"                           " child %s", xlator_req.name);                  top->notify (top, GF_EVENT_CLEANUP, victim); -                xlator_mem_cleanup (victim);          }  err:          if (!lockflag)  | 
