diff options
author | Philipp Reisner <philipp.reisner@linbit.com> | 2010-08-23 10:17:13 -0400 |
---|---|---|
committer | Philipp Reisner <philipp.reisner@linbit.com> | 2010-10-14 12:38:22 -0400 |
commit | 204bba9965c4cc175bf5bc65ddd19889e9085c72 (patch) | |
tree | 49af2eedad06561d26fea943b3be5a89da07bd93 /drivers/block/drbd/drbd_worker.c | |
parent | 48acf8689847c061bd82c808c379f1bd79dfe407 (diff) |
drbd: Bugfix for regression introduced with f9bc8913c06022e
If we intent to use the block_id member of an epoch entry,
we may not use the digest member.
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_worker.c')
-rw-r--r-- | drivers/block/drbd/drbd_worker.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/block/drbd/drbd_worker.c b/drivers/block/drbd/drbd_worker.c index 99c937acb471..1eeb55423b3e 100644 --- a/drivers/block/drbd/drbd_worker.c +++ b/drivers/block/drbd/drbd_worker.c | |||
@@ -1052,7 +1052,9 @@ int w_e_end_csum_rs_req(struct drbd_conf *mdev, struct drbd_work *w, int cancel) | |||
1052 | ok = drbd_send_ack(mdev, P_RS_IS_IN_SYNC, e); | 1052 | ok = drbd_send_ack(mdev, P_RS_IS_IN_SYNC, e); |
1053 | } else { | 1053 | } else { |
1054 | inc_rs_pending(mdev); | 1054 | inc_rs_pending(mdev); |
1055 | e->block_id = ID_SYNCER; | 1055 | e->block_id = ID_SYNCER; /* By setting block_id, digest pointer becomes invalid! */ |
1056 | e->flags &= ~EE_HAS_DIGEST; /* This e no longer has a digest pointer */ | ||
1057 | kfree(di); | ||
1056 | ok = drbd_send_block(mdev, P_RS_DATA_REPLY, e); | 1058 | ok = drbd_send_block(mdev, P_RS_DATA_REPLY, e); |
1057 | } | 1059 | } |
1058 | } else { | 1060 | } else { |