diff options
author | NeilBrown <neilb@suse.de> | 2009-03-30 23:39:38 -0400 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2009-03-30 23:39:38 -0400 |
commit | d0dabf7e577411c2bf6b616c751544dc241213d4 (patch) | |
tree | 26a41b66f1ae83e2127eceace281332134518eb0 /drivers/md/raid5.h | |
parent | 112bf8970dbdfc00bd4667da5996e57c2ce58066 (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.h | 15 |
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 | ||
197 | struct stripe_head { | 197 | struct 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 |