From 31f841d6b35c242942b6bdcbfdc83cf548d5235a Mon Sep 17 00:00:00 2001 From: Venky Shankar Date: Fri, 13 Mar 2015 22:00:22 +0530 Subject: cli/glusterd: CLI interface for BitRot detection * BitRot enable/disable CLI per volume * Volfile generation for Scrubber * Relevant glusterd infrastructure Change-Id: I1212af63f93ecc52b22ee6da920e1664f66a1e39 BUG: 1170075 Original-Author: Raghavendra Bhat Original-Author: Venky Shankar Original-Author: Gaurav Kumar Garg Original-Author: Anand Nekkunti Reviewed-on: http://review.gluster.org/9986 Tested-by: Gluster Build System Reviewed-by: Vijay Bellur --- xlators/mgmt/glusterd/src/glusterd-bitrot.c | 48 ++++++++++++++++------------- 1 file changed, 27 insertions(+), 21 deletions(-) (limited to 'xlators/mgmt/glusterd/src/glusterd-bitrot.c') diff --git a/xlators/mgmt/glusterd/src/glusterd-bitrot.c b/xlators/mgmt/glusterd/src/glusterd-bitrot.c index 44fefe82b7e..5bd906312a4 100644 --- a/xlators/mgmt/glusterd/src/glusterd-bitrot.c +++ b/xlators/mgmt/glusterd/src/glusterd-bitrot.c @@ -192,6 +192,27 @@ out: return ret; } +gf_boolean_t +glusterd_all_volumes_with_bitrot_stopped () +{ + glusterd_conf_t *conf = THIS->private; + glusterd_volinfo_t *volinfo = NULL; + gf_boolean_t stopped = _gf_true; + + cds_list_for_each_entry (volinfo, &conf->volumes, vol_list) { + if (!glusterd_is_bitrot_enabled (volinfo)) + continue; + else if (volinfo->status != GLUSTERD_STATUS_STARTED) + continue; + else { + stopped = _gf_false; + break; + } + } + + return stopped; +} + static int glusterd_manage_bitrot (int opcode) { @@ -207,28 +228,13 @@ glusterd_manage_bitrot (int opcode) switch (opcode) { case GF_BITROT_OPTION_TYPE_ENABLE: - /* TO DO: - * Start bitd service. once bitd volfile generation patch - * merge or this patch become dependent of bitd volfile - * generation patch below comment will remove. - * http://review.gluster.org/#/c/9710/ - */ - /*ret = priv->bitd_svc.manager (&(priv->bitd_svc), - NULL, PROC_START);*/ case GF_BITROT_OPTION_TYPE_DISABLE: - - /* TO DO: - * Stop bitd service. once bitd volfile generation patch - * merge or this patch become dependent of bitd volfile - * generation patch below comment will remove. - * http://review.gluster.org/#/c/9710/ - */ - - /*if (glusterd_all_volumes_with_bitrot_stopped ()) - ret = glusterd_svc_stop (&(priv->bitd_svc), - SIGTERM); - */ - ret = 0; + ret = priv->bitd_svc.manager (&(priv->bitd_svc), + NULL, PROC_START_NO_WAIT); + if (ret) + break; + ret = priv->scrub_svc.manager (&(priv->scrub_svc), NULL, + PROC_START_NO_WAIT); break; default: ret = 0; -- cgit