diff options
| author | Len Brown <len.brown@intel.com> | 2006-01-06 16:34:21 -0500 |
|---|---|---|
| committer | Len Brown <len.brown@intel.com> | 2006-01-06 16:34:21 -0500 |
| commit | 25da0974601fc8096461f3d3f7ca3aab8e79adfb (patch) | |
| tree | f9b3c1bfbc63fdb6a94e82177b8c3ae891125422 /include/linux/raid/raid1.h | |
| parent | 036d25f79ddfbc9878da24ef8e468a6d22caa605 (diff) | |
| parent | d99cf9d679a520d67f81d805b7cb91c68e1847f0 (diff) | |
Auto-update from upstream
Diffstat (limited to 'include/linux/raid/raid1.h')
| -rw-r--r-- | include/linux/raid/raid1.h | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/include/linux/raid/raid1.h b/include/linux/raid/raid1.h index 292b98f2b408..9d5494aaac0f 100644 --- a/include/linux/raid/raid1.h +++ b/include/linux/raid/raid1.h @@ -45,6 +45,8 @@ struct r1_private_data_s { spinlock_t resync_lock; int nr_pending; + int nr_waiting; + int nr_queued; int barrier; sector_t next_resync; int fullsync; /* set to 1 if a full sync is needed, @@ -52,11 +54,12 @@ struct r1_private_data_s { * Cleared when a sync completes. */ - wait_queue_head_t wait_idle; - wait_queue_head_t wait_resume; + wait_queue_head_t wait_barrier; struct pool_info *poolinfo; + struct page *tmppage; + mempool_t *r1bio_pool; mempool_t *r1buf_pool; }; @@ -106,6 +109,13 @@ struct r1bio_s { /* DO NOT PUT ANY NEW FIELDS HERE - bios array is contiguously alloced*/ }; +/* when we get a read error on a read-only array, we redirect to another + * device without failing the first device, or trying to over-write to + * correct the read error. To keep track of bad blocks on a per-bio + * level, we store IO_BLOCKED in the appropriate 'bios' pointer + */ +#define IO_BLOCKED ((struct bio*)1) + /* bits for r1bio.state */ #define R1BIO_Uptodate 0 #define R1BIO_IsSync 1 |
