aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorJens Axboe <axboe@kernel.dk>2012-05-18 10:20:06 -0400
committerJens Axboe <axboe@kernel.dk>2012-05-18 10:20:06 -0400
commit4fd1ffaa122cf66bfb710ced43679413df4f3605 (patch)
tree27bf967e16c4dcc34877e6d33672fb635a7926a2 /include
parent13828dec457270b48f433142fce0efd1e85f2c5d (diff)
parent92b4ca291f8676c9f323166a65fb7447774b2a46 (diff)
Merge branch 'for-jens' of git://git.drbd.org/linux-drbd into for-3.5/drivers
Philipp writes: This are the updates we have in the drbd-8.3 tree. They are intended for your "for-3.5/drivers" drivers branch. These changes include one new feature: * Allow detach from frozen backing devices with the new --force option; configurable timeout for backing devices by the new disk-timeout option And huge number of bug fixes: * Fixed a write ordering problem on SyncTarget nodes for a write to a block that gets resynced at the same time. The bug can only be triggered with a device that has a firmware that actually reorders writes to the same block * Fixed a race between disconnect and receive_state, that could cause a IO lockup * Fixed resend/resubmit for requests with disk or network timeout * Make sure that hard state changed do not disturb the connection establishing process (I.e. detach due to an IO error). When the bug was triggered it caused a retry in the connect process * Postpone soft state changes to no disturb the connection establishing process (I.e. becoming primary). When the bug was triggered it could cause both nodes going into SyncSource state * Fixed a refcount leak that could cause failures when trying to unload a protocol family modules, that was used by DRBD * Dedicated page pool for meta data IOs * Deny normal detach (as opposed to --forced) if the user tries to detach from the last UpToDate disk in the resource * Fixed a possible protocol error that could be caused by "unusual" BIOs. * Enforce the disk-timeout option also on meta-data IO operations * Implemented stable bitmap pages when we do a full write out of the bitmap * Fixed a rare compatibility issue with DRBD's older than 8.3.7 when negotiating the bio_size * Fixed a rare race condition where an empty resync could stall with if pause/unpause events happen in parallel * Made the re-establishing of connections quicker, if it got a broken pipe once. Previously there was a bug in the code caused it to waste the first successful established connection after a broken pipe event. PS: I am postponing the drbd-8.4 for mainline for one or two kernel development cycles more (the ~400 patchets set).
Diffstat (limited to 'include')
-rw-r--r--include/linux/drbd.h6
-rw-r--r--include/linux/drbd_limits.h7
-rw-r--r--include/linux/drbd_nl.h5
3 files changed, 13 insertions, 5 deletions
diff --git a/include/linux/drbd.h b/include/linux/drbd.h
index 9e5f5607eba3..47e3d4850584 100644
--- a/include/linux/drbd.h
+++ b/include/linux/drbd.h
@@ -53,7 +53,7 @@
53 53
54 54
55extern const char *drbd_buildtag(void); 55extern const char *drbd_buildtag(void);
56#define REL_VERSION "8.3.11" 56#define REL_VERSION "8.3.13"
57#define API_VERSION 88 57#define API_VERSION 88
58#define PRO_VERSION_MIN 86 58#define PRO_VERSION_MIN 86
59#define PRO_VERSION_MAX 96 59#define PRO_VERSION_MAX 96
@@ -112,8 +112,8 @@ enum drbd_ret_code {
112 ERR_OPEN_MD_DISK = 105, 112 ERR_OPEN_MD_DISK = 105,
113 ERR_DISK_NOT_BDEV = 107, 113 ERR_DISK_NOT_BDEV = 107,
114 ERR_MD_NOT_BDEV = 108, 114 ERR_MD_NOT_BDEV = 108,
115 ERR_DISK_TO_SMALL = 111, 115 ERR_DISK_TOO_SMALL = 111,
116 ERR_MD_DISK_TO_SMALL = 112, 116 ERR_MD_DISK_TOO_SMALL = 112,
117 ERR_BDCLAIM_DISK = 114, 117 ERR_BDCLAIM_DISK = 114,
118 ERR_BDCLAIM_MD_DISK = 115, 118 ERR_BDCLAIM_MD_DISK = 115,
119 ERR_MD_IDX_INVALID = 116, 119 ERR_MD_IDX_INVALID = 116,
diff --git a/include/linux/drbd_limits.h b/include/linux/drbd_limits.h
index 447c36752385..fb670bf603f7 100644
--- a/include/linux/drbd_limits.h
+++ b/include/linux/drbd_limits.h
@@ -48,6 +48,11 @@
48#define DRBD_TIMEOUT_MAX 600 48#define DRBD_TIMEOUT_MAX 600
49#define DRBD_TIMEOUT_DEF 60 /* 6 seconds */ 49#define DRBD_TIMEOUT_DEF 60 /* 6 seconds */
50 50
51 /* If backing disk takes longer than disk_timeout, mark the disk as failed */
52#define DRBD_DISK_TIMEOUT_MIN 0 /* 0 = disabled */
53#define DRBD_DISK_TIMEOUT_MAX 6000 /* 10 Minutes */
54#define DRBD_DISK_TIMEOUT_DEF 0 /* disabled */
55
51 /* active connection retries when C_WF_CONNECTION */ 56 /* active connection retries when C_WF_CONNECTION */
52#define DRBD_CONNECT_INT_MIN 1 57#define DRBD_CONNECT_INT_MIN 1
53#define DRBD_CONNECT_INT_MAX 120 58#define DRBD_CONNECT_INT_MAX 120
@@ -60,7 +65,7 @@
60 65
61 /* timeout for the ping packets.*/ 66 /* timeout for the ping packets.*/
62#define DRBD_PING_TIMEO_MIN 1 67#define DRBD_PING_TIMEO_MIN 1
63#define DRBD_PING_TIMEO_MAX 100 68#define DRBD_PING_TIMEO_MAX 300
64#define DRBD_PING_TIMEO_DEF 5 69#define DRBD_PING_TIMEO_DEF 5
65 70
66 /* max number of write requests between write barriers */ 71 /* max number of write requests between write barriers */
diff --git a/include/linux/drbd_nl.h b/include/linux/drbd_nl.h
index ab6159e4fcf0..a8706f08ab36 100644
--- a/include/linux/drbd_nl.h
+++ b/include/linux/drbd_nl.h
@@ -31,9 +31,12 @@ NL_PACKET(disk_conf, 3,
31 NL_INTEGER( 56, T_MAY_IGNORE, max_bio_bvecs) 31 NL_INTEGER( 56, T_MAY_IGNORE, max_bio_bvecs)
32 NL_BIT( 57, T_MAY_IGNORE, no_disk_barrier) 32 NL_BIT( 57, T_MAY_IGNORE, no_disk_barrier)
33 NL_BIT( 58, T_MAY_IGNORE, no_disk_drain) 33 NL_BIT( 58, T_MAY_IGNORE, no_disk_drain)
34 NL_INTEGER( 89, T_MAY_IGNORE, disk_timeout)
34) 35)
35 36
36NL_PACKET(detach, 4, ) 37NL_PACKET(detach, 4,
38 NL_BIT( 88, T_MANDATORY, detach_force)
39)
37 40
38NL_PACKET(net_conf, 5, 41NL_PACKET(net_conf, 5,
39 NL_STRING( 8, T_MANDATORY, my_addr, 128) 42 NL_STRING( 8, T_MANDATORY, my_addr, 128)