commit 8742ae97a69c8cc282faf39d8c1e7bfda441e5b2 Author: Eduardo Damato <edamato@redhat.com> Date: Tue Sep 29 10:03:09 2009 -0400 qdisk: Disable max_error_cycles when using io_timeout Resolves: rgbz#511113 Part 2/4 Signed-off-by: Eduardo Damato <edamato@redhat.com> Signed-off-by: Lon Hohberger <lhh@redhat.com> diff --git a/cman/man/qdisk.5 b/cman/man/qdisk.5 index 513d56b..7d28f90 100644 --- a/cman/man/qdisk.5 +++ b/cman/man/qdisk.5 @@ -295,7 +295,8 @@ pass. The default for this value is 0 (off). .in 12 If set to 1 (on), qdiskd will watch internal timers and reboot the node if qdisk is not able to write to disk after (interval * tko) seconds. -The default for this value is 0 (off). +The default for this value is 0 (off). If io_timeout is active +max_error_cycles is overridden and set to off. .in 9 \fIscheduler\fP\fB="\fPrr\fB"\fP @@ -360,7 +361,8 @@ device name. If we receive an I/O error during a cycle, we do not poll CMAN and tell it we are alive. If specified, this value will cause qdiskd to exit after the specified number of consecutive cycles during which I/O errors -occur. The default is 0 (no maximum). +occur. The default is 0 (no maximum). This option is ignored if +io_timeout is set to 1. .in 8 \fB...>\fP diff --git a/cman/qdisk/main.c b/cman/qdisk/main.c index c86759e..b698f2c 100644 --- a/cman/qdisk/main.c +++ b/cman/qdisk/main.c @@ -1425,12 +1425,15 @@ get_config_data(char *cluster_name, qd_ctx *ctx, struct h_data *h, int maxh, /* * How many consecutive error cycles do we allow before * giving up? + * + * Notice that max_error_cycles is disabled if io_timeout is + * active. */ /* default = no max */ snprintf(query, sizeof(query), "/cluster/quorumd/@max_error_cycles"); if (ccs_get(ccsfd, query, &val) == 0) { ctx->qc_max_error_cycles = atoi(val); - if (ctx->qc_max_error_cycles <= 0) + if ((ctx->qc_max_error_cycles <= 0) || (ctx->qc_flags & RF_IOTIMEOUT)) ctx->qc_max_error_cycles = 0; free(val); }