From 7d81a49a0479b4b98a639b5e50ec2ea4fa8a1314 Mon Sep 17 00:00:00 2001 From: Amar Tumballi Date: Thu, 31 Aug 2017 15:23:56 +0530 Subject: stripe, quiesce: volume option fixes Updates: #302 Change-Id: I8f84260ba007f2afc7fe3b7c15c06069942ad6d1 Signed-off-by: Amar Tumballi --- xlators/features/quiesce/src/quiesce.c | 13 +++++++++++-- xlators/features/quiesce/src/quiesce.h | 1 + 2 files changed, 12 insertions(+), 2 deletions(-) (limited to 'xlators/features/quiesce') diff --git a/xlators/features/quiesce/src/quiesce.c b/xlators/features/quiesce/src/quiesce.c index f8217810756..c78cabb31f3 100644 --- a/xlators/features/quiesce/src/quiesce.c +++ b/xlators/features/quiesce/src/quiesce.c @@ -123,7 +123,7 @@ gf_quiesce_enqueue (xlator_t *this, call_stub_t *stub) UNLOCK (&priv->lock); if (!priv->timer) { - timeout.tv_sec = 20; + timeout.tv_sec = priv->timeout; timeout.tv_nsec = 0; priv->timer = gf_timer_call_after (this->ctx, @@ -2451,6 +2451,8 @@ init (xlator_t *this) if (!priv) goto out; + GF_OPTION_INIT ("timeout", priv->timeout, time, out); + priv->local_pool = mem_pool_new (quiesce_local_t, GF_FOPS_EXPECTED_IN_PARALLEL); @@ -2520,7 +2522,7 @@ notify (xlator_t *this, int event, void *data, ...) if (priv->timer) break; - timeout.tv_sec = 20; + timeout.tv_sec = priv->timeout; timeout.tv_nsec = 0; priv->timer = gf_timer_call_after (this->ctx, @@ -2602,5 +2604,12 @@ struct xlator_cbks cbks; struct volume_options options[] = { + { .key = {"timeout"}, + .type = GF_OPTION_TYPE_TIME, + .default_value = "20s", + .description = "timeout for ignoring all the quiesced calls", + .tags = {"debug", "dev-only"}, + .op_version = { GD_OP_VERSION_4_0_0 }, + }, { .key = {NULL} }, }; diff --git a/xlators/features/quiesce/src/quiesce.h b/xlators/features/quiesce/src/quiesce.h index 878ed77e928..a5fb43ccdc8 100644 --- a/xlators/features/quiesce/src/quiesce.h +++ b/xlators/features/quiesce/src/quiesce.h @@ -25,6 +25,7 @@ typedef struct { int queue_size; pthread_t thr; struct mem_pool *local_pool; + uint32_t timeout; } quiesce_priv_t; typedef struct { -- cgit