diff options
author | Venky Shankar <vshankar@redhat.com> | 2015-06-09 10:02:11 +0530 |
---|---|---|
committer | Raghavendra Bhat <raghavendra@redhat.com> | 2015-07-09 03:29:01 -0700 |
commit | a90b7c5d640bc7bf1bd648c69127fd1953e27421 (patch) | |
tree | 462c6fa36a9bed62d513f127520a2667df2905d4 /xlators/features/bit-rot/src/bitd/bit-rot-ssm.h | |
parent | 2874ee4d65185a607f1f646fc88ba8eb400aaa9a (diff) |
features/bitrot: handle scrub states via state machine
Backport of http://review.gluster.org/11149
A bunch of command line options for scrubber tempted the use of
state machine to track current state of scrubber under various
circumstances where the options could be in effect.
Change-Id: Id614bb2e6af30a90d2391ea31ae0a3edeb4e0d69
BUG: 1226666
Signed-off-by: Venky Shankar <vshankar@redhat.com>
Reviewed-on: http://review.gluster.org/11541
Reviewed-by: Raghavendra Bhat <raghavendra@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Diffstat (limited to 'xlators/features/bit-rot/src/bitd/bit-rot-ssm.h')
-rw-r--r-- | xlators/features/bit-rot/src/bitd/bit-rot-ssm.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/xlators/features/bit-rot/src/bitd/bit-rot-ssm.h b/xlators/features/bit-rot/src/bitd/bit-rot-ssm.h new file mode 100644 index 00000000000..72fd62b3630 --- /dev/null +++ b/xlators/features/bit-rot/src/bitd/bit-rot-ssm.h @@ -0,0 +1,36 @@ +/* + Copyright (c) 2015 Red Hat, Inc. <http://www.redhat.com> + This file is part of GlusterFS. + + This file is licensed to you under your choice of the GNU Lesser + General Public License, version 3 or any later version (LGPLv3 or + later), or the GNU General Public License, version 2 (GPLv2), in all + cases as published by the Free Software Foundation. +*/ + +#ifndef __BIT_ROT_SSM_H__ +#define __BIT_ROT_SSM_H__ + +#include "xlator.h" + +typedef enum br_scrub_state { + BR_SCRUB_STATE_INACTIVE = 0, + BR_SCRUB_STATE_PENDING, + BR_SCRUB_STATE_ACTIVE, + BR_SCRUB_STATE_PAUSED, + BR_SCRUB_STATE_IPAUSED, + BR_SCRUB_STATE_STALLED, + BR_SCRUB_MAXSTATES, +} br_scrub_state_t; + +typedef enum br_scrub_event { + BR_SCRUB_EVENT_SCHEDULE = 0, + BR_SCRUB_EVENT_PAUSE, + BR_SCRUB_MAXEVENTS, +} br_scrub_event_t; + +struct br_child; + +int32_t br_scrub_state_machine (xlator_t *, struct br_child *); + +#endif /* __BIT_ROT_SSM_H__ */ |