In response to Christoph, I've broken the read and writes into their own functions to make the code even cleaner. Since it is such a big change, I broke up the commits into this series instead of creating a v2 of the previous patch. Changes since v2: Shaohua Li * Make md_write_start before wait_barrier * Move I/O in recovery stripe test to write path * Changed to if/then instead of return in __make_request Changes since v1: John Stoffel * Changed to if/then instead of return in raid1_make_request Neil Brown * Moved wait_barrier into raid1_{read,write}_request so that it could be after ->suspend_{hi,lo}. This prevents a write blocking a resync until the suspend region is moved. Robert LeBlanc (2): md/raid1: Refactor raid1_make_request md/raid10: Refactor raid10_make_request drivers/md/raid1.c | 259 +++++++++++++++++++++++++++------------------------- drivers/md/raid10.c | 215 ++++++++++++++++++++++--------------------- 2 files changed, 245 insertions(+), 229 deletions(-) -- 2.10.2 -- To unsubscribe from this list: send the line "unsubscribe linux-raid" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html