summaryrefslogtreecommitdiffstats
path: root/drivers/md/raid5.h
diff options
context:
space:
mode:
authorshli@kernel.org2014-12-15 02:57:04 +0100
committerNeilBrown2015-04-22 00:00:41 +0200
commitdabc4ec6ba72418ebca6bf1884f344bba40c8709 (patch)
tree7860792d9a7b5043c043eea983d218591bbe06f5 /drivers/md/raid5.h
parentraid5: handle io error of batch list (diff)
downloadkernel-qcow2-linux-dabc4ec6ba72418ebca6bf1884f344bba40c8709.tar.gz
kernel-qcow2-linux-dabc4ec6ba72418ebca6bf1884f344bba40c8709.tar.xz
kernel-qcow2-linux-dabc4ec6ba72418ebca6bf1884f344bba40c8709.zip
raid5: handle expansion/resync case with stripe batching
expansion/resync can grab a stripe when the stripe is in batch list. Since all stripes in batch list must be in the same state, we can't allow some stripes run into expansion/resync. So we delay expansion/resync for stripe in batch list. Signed-off-by: Shaohua Li <shli@fusionio.com> Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'drivers/md/raid5.h')
-rw-r--r--drivers/md/raid5.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/md/raid5.h b/drivers/md/raid5.h
index cf3562e99440..ee65ed844d3f 100644
--- a/drivers/md/raid5.h
+++ b/drivers/md/raid5.h
@@ -339,6 +339,11 @@ enum {
STRIPE_BATCH_ERR,
};
+#define STRIPE_EXPAND_SYNC_FLAG \
+ ((1 << STRIPE_EXPAND_SOURCE) |\
+ (1 << STRIPE_EXPAND_READY) |\
+ (1 << STRIPE_EXPANDING) |\
+ (1 << STRIPE_SYNC_REQUESTED))
/*
* Operation request flags
*/