diff options
| author | Neil Brown <neilb@cse.unsw.edu.au> | 2002-06-18 04:17:33 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@home.transmeta.com> | 2002-06-18 04:17:33 -0700 |
| commit | 7145dd2494f8e704342850325d04f5567c33cda1 (patch) | |
| tree | ca2bf04041456e4cc77ee29897eb0f1b5cbcbe4d /include | |
| parent | bc0eea3349079301d6d3ae4dee265e065f58e653 (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.h | 8 |
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 */ |
