md: replace R5_WantPrexor with R5_WantDrain, add 'prexor' reconstruct_states
From: Dan Williams <dan.j.williams@intel.com>
Currently ops_run_biodrain and other locations have extra logic to determine
which blocks are processed in the prexor and non-prexor cases. This can be
eliminated if handle_write_operations5 flags the blocks to be processed in all
cases via R5_Wantdrain. The presence of the prexor operation is tracked in
sh->reconstruct_state.
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Neil Brown <neilb@suse.de>
diff --git a/include/linux/raid/raid5.h b/include/linux/raid/raid5.h
index 5f3e674..3b26727 100644
--- a/include/linux/raid/raid5.h
+++ b/include/linux/raid/raid5.h
@@ -187,8 +187,10 @@
*/
enum reconstruct_states {
reconstruct_state_idle = 0,
+ reconstruct_state_prexor_drain_run, /* prexor-write */
reconstruct_state_drain_run, /* write */
reconstruct_state_run, /* expand */
+ reconstruct_state_prexor_drain_result,
reconstruct_state_drain_result,
reconstruct_state_result,
};
@@ -258,9 +260,7 @@
#define R5_Wantfill 12 /* dev->toread contains a bio that needs
* filling
*/
-#define R5_Wantprexor 13 /* distinguish blocks ready for rmw from
- * other "towrites"
- */
+#define R5_Wantdrain 13 /* dev->towrite needs to be drained */
/*
* Write method
*/