|
@@ -60,7 +60,21 @@
|
|
|
*/
|
|
|
#define NR_RAID10_BIOS 256
|
|
|
|
|
|
-/* When there are this many requests queue to be written by
|
|
|
+/* when we get a read error on a read-only array, we redirect to another
|
|
|
+ * device without failing the first device, or trying to over-write to
|
|
|
+ * correct the read error. To keep track of bad blocks on a per-bio
|
|
|
+ * level, we store IO_BLOCKED in the appropriate 'bios' pointer
|
|
|
+ */
|
|
|
+#define IO_BLOCKED ((struct bio *)1)
|
|
|
+/* When we successfully write to a known bad-block, we need to remove the
|
|
|
+ * bad-block marking which must be done from process context. So we record
|
|
|
+ * the success by setting devs[n].bio to IO_MADE_GOOD
|
|
|
+ */
|
|
|
+#define IO_MADE_GOOD ((struct bio *)2)
|
|
|
+
|
|
|
+#define BIO_SPECIAL(bio) ((unsigned long)bio <= 2)
|
|
|
+
|
|
|
+/* When there are this many requests queued to be written by
|
|
|
* the raid10 thread, we become 'congested' to provide back-pressure
|
|
|
* for writeback.
|
|
|
*/
|