diff options
Diffstat (limited to 'include/linux/raid/raid10.h')
| -rw-r--r-- | include/linux/raid/raid10.h | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/include/linux/raid/raid10.h b/include/linux/raid/raid10.h index 60708789c8f9..b1103298a8c2 100644 --- a/include/linux/raid/raid10.h +++ b/include/linux/raid/raid10.h | |||
| @@ -35,18 +35,26 @@ struct r10_private_data_s { | |||
| 35 | sector_t chunk_mask; | 35 | sector_t chunk_mask; |
| 36 | 36 | ||
| 37 | struct list_head retry_list; | 37 | struct list_head retry_list; |
| 38 | /* for use when syncing mirrors: */ | 38 | /* queue pending writes and submit them on unplug */ |
| 39 | struct bio_list pending_bio_list; | ||
| 40 | |||
| 39 | 41 | ||
| 40 | spinlock_t resync_lock; | 42 | spinlock_t resync_lock; |
| 41 | int nr_pending; | 43 | int nr_pending; |
| 44 | int nr_waiting; | ||
| 45 | int nr_queued; | ||
| 42 | int barrier; | 46 | int barrier; |
| 43 | sector_t next_resync; | 47 | sector_t next_resync; |
| 48 | int fullsync; /* set to 1 if a full sync is needed, | ||
| 49 | * (fresh device added). | ||
| 50 | * Cleared when a sync completes. | ||
| 51 | */ | ||
| 44 | 52 | ||
| 45 | wait_queue_head_t wait_idle; | 53 | wait_queue_head_t wait_barrier; |
| 46 | wait_queue_head_t wait_resume; | ||
| 47 | 54 | ||
| 48 | mempool_t *r10bio_pool; | 55 | mempool_t *r10bio_pool; |
| 49 | mempool_t *r10buf_pool; | 56 | mempool_t *r10buf_pool; |
| 57 | struct page *tmppage; | ||
| 50 | }; | 58 | }; |
| 51 | 59 | ||
| 52 | typedef struct r10_private_data_s conf_t; | 60 | typedef struct r10_private_data_s conf_t; |
| @@ -96,8 +104,16 @@ struct r10bio_s { | |||
| 96 | } devs[0]; | 104 | } devs[0]; |
| 97 | }; | 105 | }; |
| 98 | 106 | ||
| 107 | /* when we get a read error on a read-only array, we redirect to another | ||
| 108 | * device without failing the first device, or trying to over-write to | ||
| 109 | * correct the read error. To keep track of bad blocks on a per-bio | ||
| 110 | * level, we store IO_BLOCKED in the appropriate 'bios' pointer | ||
| 111 | */ | ||
| 112 | #define IO_BLOCKED ((struct bio*)1) | ||
| 113 | |||
| 99 | /* bits for r10bio.state */ | 114 | /* bits for r10bio.state */ |
| 100 | #define R10BIO_Uptodate 0 | 115 | #define R10BIO_Uptodate 0 |
| 101 | #define R10BIO_IsSync 1 | 116 | #define R10BIO_IsSync 1 |
| 102 | #define R10BIO_IsRecover 2 | 117 | #define R10BIO_IsRecover 2 |
| 118 | #define R10BIO_Degraded 3 | ||
| 103 | #endif | 119 | #endif |
