summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorNeil Brown <neilb@cse.unsw.edu.au>2002-06-18 04:17:33 -0700
committerLinus Torvalds <torvalds@home.transmeta.com>2002-06-18 04:17:33 -0700
commit7145dd2494f8e704342850325d04f5567c33cda1 (patch)
treeca2bf04041456e4cc77ee29897eb0f1b5cbcbe4d /include
parentbc0eea3349079301d6d3ae4dee265e065f58e653 (diff)
[PATCH] md 18 of 22 - More mddev tidyup - remove recovery_sem and resync_sem
More mddev tidyup - remove recovery_sem and resync_sem recovery_sem and resync_sem get replaced by careful use of recovery_running protected by reconfig_sem. As part of this, the creative: down(&mddev->recovery_sem); up(&mddev->recovery_sem); when stopping an array gets replaced by a more obvious wait_event(resync_wait, mddev->recovery_running <= 0);
Diffstat (limited to 'include')
-rw-r--r--include/linux/raid/md_k.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/include/linux/raid/md_k.h b/include/linux/raid/md_k.h
index 9984edf26032..3352cbca5308 100644
--- a/include/linux/raid/md_k.h
+++ b/include/linux/raid/md_k.h
@@ -184,10 +184,14 @@ struct mddev_s
unsigned long curr_resync; /* blocks scheduled */
unsigned long resync_mark; /* a recent timestamp */
unsigned long resync_mark_cnt;/* blocks written at resync_mark */
+ /* recovery_running is 0 for no recovery/resync,
+ * 1 for active recovery
+ * 2 for active resync
+ * -error for an error (e.g. -EINTR)
+ * it can only be set > 0 under reconfig_sem
+ */
int recovery_running;
struct semaphore reconfig_sem;
- struct semaphore recovery_sem;
- struct semaphore resync_sem;
atomic_t active;
atomic_t recovery_active; /* blocks scheduled, but not written */