aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/block/drbd/drbd_req.h
diff options
context:
space:
mode:
authorPhilipp Reisner <philipp.reisner@linbit.com>2010-05-12 17:08:26 +0200
committerPhilipp Reisner <philipp.reisner@linbit.com>2010-10-14 14:35:58 +0200
commit11b58e73a3a3d1bbb582370d59f9b2c4d0136b42 (patch)
tree9ca5b48e368da91f6cc1888440b6ea9ffe9a7e3f /drivers/block/drbd/drbd_req.h
parent2a80699f807885d501f08a7006f6a56c1c937a6e (diff)
downloadkernel_samsung_smdk4412-11b58e73a3a3d1bbb582370d59f9b2c4d0136b42.zip
kernel_samsung_smdk4412-11b58e73a3a3d1bbb582370d59f9b2c4d0136b42.tar.gz
kernel_samsung_smdk4412-11b58e73a3a3d1bbb582370d59f9b2c4d0136b42.tar.bz2
drbd: factored tl_restart() out of tl_clear().
If IO was frozen for a temporal network outage, resend the content of the transfer-log into the newly established connection. 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_req.h')
-rw-r--r--drivers/block/drbd/drbd_req.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/block/drbd/drbd_req.h b/drivers/block/drbd/drbd_req.h
index db37c6e..1bcb855 100644
--- a/drivers/block/drbd/drbd_req.h
+++ b/drivers/block/drbd/drbd_req.h
@@ -104,6 +104,7 @@ enum drbd_req_event {
read_ahead_completed_with_error,
write_completed_with_error,
completed_ok,
+ resend,
nothing, /* for tracing only */
};
@@ -206,6 +207,13 @@ enum drbd_req_state_bits {
#define RQ_WRITE (1UL << __RQ_WRITE)
+/* For waking up the frozen transfer log mod_req() has to return if the request
+ should be counted in the epoch object*/
+#define MR_WRITE_SHIFT 0
+#define MR_WRITE (1 << MR_WRITE_SHIFT)
+#define MR_READ_SHIFT 1
+#define MR_READ (1 << MR_READ_SHIFT)
+
/* epoch entries */
static inline
struct hlist_head *ee_hash_slot(struct drbd_conf *mdev, sector_t sector)