summaryrefslogtreecommitdiffstats
path: root/drivers/md/raid5.h
diff options
context:
space:
mode:
authorSong Liu <songliubraving@fb.com>2017-01-12 17:22:41 -0800
committerShaohua Li <shli@fb.com>2017-01-24 11:20:14 -0800
commit86aa1397ddfde563b3692adadb8b8e32e97b4e5e (patch)
tree866e94b5411650b70561ea663ce3680a6d4a364f /drivers/md/raid5.h
parentd46d29f072accb069cb42b5fbebcc77d9094a785 (diff)
downloadtalos-op-linux-86aa1397ddfde563b3692adadb8b8e32e97b4e5e.tar.gz
talos-op-linux-86aa1397ddfde563b3692adadb8b8e32e97b4e5e.zip
md/r5cache: read data into orig_page for prexor of cached data
With write back cache, we use orig_page to do prexor. This patch makes sure we read data into orig_page for it. Flag R5_OrigPageUPTDODATE is added to show whether orig_page has the latest data from raid disk. We introduce a helper function uptodate_for_rmw() to simplify the a couple conditions in handle_stripe_dirtying(). Signed-off-by: Song Liu <songliubraving@fb.com> Signed-off-by: Shaohua Li <shli@fb.com>
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 ed8e1362ab36..461df197d157 100644
--- a/drivers/md/raid5.h
+++ b/drivers/md/raid5.h
@@ -322,6 +322,11 @@ enum r5dev_flags {
* data and parity being written are in the journal
* device
*/
+ R5_OrigPageUPTDODATE, /* with write back cache, we read old data into
+ * dev->orig_page for prexor. When this flag is
+ * set, orig_page contains latest data in the
+ * raid disk.
+ */
};
/*
OpenPOWER on IntegriCloud