summaryrefslogtreecommitdiffstats
path: root/drivers/block/drbd/drbd_receiver.c
diff options
context:
space:
mode:
authorLars Ellenberg2010-11-10 10:36:52 +0100
committerPhilipp Reisner2011-03-10 11:19:08 +0100
commit470be44ab1841f3261a4d758450a42e6b79e9551 (patch)
tree1e6532855e065408b6e838bd27fe36629fb18487 /drivers/block/drbd/drbd_receiver.c
parentdrbd: further converge progress display of resync and online-verify (diff)
downloadkernel-qcow2-linux-470be44ab1841f3261a4d758450a42e6b79e9551.tar.gz
kernel-qcow2-linux-470be44ab1841f3261a4d758450a42e6b79e9551.tar.xz
kernel-qcow2-linux-470be44ab1841f3261a4d758450a42e6b79e9551.zip
drbd: detect modification of in-flight buffers
With data-integrity digest enabled, double-check on the sending side for modifications by upper layers of buffers under write back, so we can tell it appart from corruption on the "wire". Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
Diffstat (limited to 'drivers/block/drbd/drbd_receiver.c')
-rw-r--r--drivers/block/drbd/drbd_receiver.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/block/drbd/drbd_receiver.c b/drivers/block/drbd/drbd_receiver.c
index d0e19a242af4..ca213c6e5f9d 100644
--- a/drivers/block/drbd/drbd_receiver.c
+++ b/drivers/block/drbd/drbd_receiver.c
@@ -1281,7 +1281,8 @@ read_in_block(struct drbd_conf *mdev, u64 id, sector_t sector, int data_size) __
if (dgs) {
drbd_csum_ee(mdev, mdev->integrity_r_tfm, e, dig_vv);
if (memcmp(dig_in, dig_vv, dgs)) {
- dev_err(DEV, "Digest integrity check FAILED.\n");
+ dev_err(DEV, "Digest integrity check FAILED: %llus +%u\n",
+ (unsigned long long)sector, data_size);
drbd_bcast_ee(mdev, "digest failed",
dgs, dig_in, dig_vv, e);
drbd_free_ee(mdev, e);