aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/md/raid5.h
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2009-03-30 23:39:38 -0400
committerNeilBrown <neilb@suse.de>2009-03-30 23:39:38 -0400
commitd0dabf7e577411c2bf6b616c751544dc241213d4 (patch)
tree26a41b66f1ae83e2127eceace281332134518eb0 /drivers/md/raid5.h
parent112bf8970dbdfc00bd4667da5996e57c2ce58066 (diff)
md/raid6: remove expectation that Q device is immediately after P device.
Code currently assumes that the devices in a raid6 stripe are 0 1 ... N-1 P Q in some rotated order. We will shortly add new layouts in which this strict pattern is broken. So remove this expectation. We still assume that the data disks are roughly in-order. However P and Q can be inserted anywhere within that order. Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'drivers/md/raid5.h')
-rw-r--r--drivers/md/raid5.h15
1 files changed, 8 insertions, 7 deletions
diff --git a/drivers/md/raid5.h b/drivers/md/raid5.h
index 0ed22dff56e0..0c7375ad12bd 100644
--- a/drivers/md/raid5.h
+++ b/drivers/md/raid5.h
@@ -196,15 +196,16 @@ enum reconstruct_states {
196 196
197struct stripe_head { 197struct stripe_head {
198 struct hlist_node hash; 198 struct hlist_node hash;
199 struct list_head lru; /* inactive_list or handle_list */ 199 struct list_head lru; /* inactive_list or handle_list */
200 struct raid5_private_data *raid_conf; 200 struct raid5_private_data *raid_conf;
201 sector_t sector; /* sector of this row */ 201 sector_t sector; /* sector of this row */
202 int pd_idx; /* parity disk index */ 202 short pd_idx; /* parity disk index */
203 unsigned long state; /* state flags */ 203 short qd_idx; /* 'Q' disk index for raid6 */
204 atomic_t count; /* nr of active thread/requests */ 204 unsigned long state; /* state flags */
205 atomic_t count; /* nr of active thread/requests */
205 spinlock_t lock; 206 spinlock_t lock;
206 int bm_seq; /* sequence number for bitmap flushes */ 207 int bm_seq; /* sequence number for bitmap flushes */
207 int disks; /* disks in stripe */ 208 int disks; /* disks in stripe */
208 enum check_states check_state; 209 enum check_states check_state;
209 enum reconstruct_states reconstruct_state; 210 enum reconstruct_states reconstruct_state;
210 /* stripe_operations 211 /* stripe_operations