summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Ellenberg <lars.ellenberg@linbit.com>2011-06-28 13:22:48 +0200
committerPhilipp Reisner <philipp.reisner@linbit.com>2011-06-30 09:23:46 +0200
commit86e1e98e5c6b4edab97e2b058466ef553cfd878e (patch)
treee8b26c03a90edaf5214a094d3dcb1b223041b862
parent15b493d11fcce3c5547e3d7fb6d90e11ffe12777 (diff)
downloadkernel-common-86e1e98e5c6b4edab97e2b058466ef553cfd878e.tar.gz
kernel-common-86e1e98e5c6b4edab97e2b058466ef553cfd878e.tar.bz2
kernel-common-86e1e98e5c6b4edab97e2b058466ef553cfd878e.zip
drbd: we should write meta data updates with FLUSH FUA
We used to write these with BIO_RW_BARRIER aka REQ_HARDBARRIER (unless disabled in the configuration). The correct semantic now would be to write with FLUSH/FUA. For example, with activity log transactions, FUA alone is not enough, we need the corresponding bitmap update (and all related application updates) on stable storage as well. Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
-rw-r--r--drivers/block/drbd/drbd_actlog.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/block/drbd/drbd_actlog.c b/drivers/block/drbd/drbd_actlog.c
index 09ef9a878ef0..cf0e63dd97da 100644
--- a/drivers/block/drbd/drbd_actlog.c
+++ b/drivers/block/drbd/drbd_actlog.c
@@ -79,7 +79,7 @@ static int _drbd_md_sync_page_io(struct drbd_conf *mdev,
md_io.error = 0;
if ((rw & WRITE) && !test_bit(MD_NO_FUA, &mdev->flags))
- rw |= REQ_FUA;
+ rw |= REQ_FUA | REQ_FLUSH;
rw |= REQ_SYNC;
bio = bio_alloc(GFP_NOIO, 1);