diff options
author | Philipp Reisner <philipp.reisner@linbit.com> | 2011-02-09 08:10:32 -0500 |
---|---|---|
committer | Philipp Reisner <philipp.reisner@linbit.com> | 2011-09-28 04:33:16 -0400 |
commit | 2a67d8b93b3363d4a5608d16d510a4bf6b3863fb (patch) | |
tree | 1df36bd453029bf29dc5d4dbb97b6212f00736bb /drivers/block/drbd/drbd_int.h | |
parent | 00d56944ff086f895e9ad184a7785ca1eece4a3b (diff) |
drbd: Converted drbd_send_ping() and related functions from mdev to tconn
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_int.h')
-rw-r--r-- | drivers/block/drbd/drbd_int.h | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/drivers/block/drbd/drbd_int.h b/drivers/block/drbd/drbd_int.h index 8f9cc9d1bf93..e2b59f58a0aa 100644 --- a/drivers/block/drbd/drbd_int.h +++ b/drivers/block/drbd/drbd_int.h | |||
@@ -790,7 +790,6 @@ enum { | |||
790 | RESIZE_PENDING, /* Size change detected locally, waiting for the response from | 790 | RESIZE_PENDING, /* Size change detected locally, waiting for the response from |
791 | * the peer, if it changed there as well. */ | 791 | * the peer, if it changed there as well. */ |
792 | CONN_DRY_RUN, /* Expect disconnect after resync handshake. */ | 792 | CONN_DRY_RUN, /* Expect disconnect after resync handshake. */ |
793 | GOT_PING_ACK, /* set when we receive a ping_ack packet, misc wait gets woken */ | ||
794 | NEW_CUR_UUID, /* Create new current UUID when thawing IO */ | 793 | NEW_CUR_UUID, /* Create new current UUID when thawing IO */ |
795 | AL_SUSPENDED, /* Activity logging is currently suspended. */ | 794 | AL_SUSPENDED, /* Activity logging is currently suspended. */ |
796 | AHEAD_TO_SYNC_SOURCE, /* Ahead -> SyncSource queued */ | 795 | AHEAD_TO_SYNC_SOURCE, /* Ahead -> SyncSource queued */ |
@@ -913,6 +912,7 @@ enum { | |||
913 | DISCARD_CONCURRENT, /* Set on one node, cleared on the peer! */ | 912 | DISCARD_CONCURRENT, /* Set on one node, cleared on the peer! */ |
914 | SEND_PING, /* whether asender should send a ping asap */ | 913 | SEND_PING, /* whether asender should send a ping asap */ |
915 | SIGNAL_ASENDER, /* whether asender wants to be interrupted */ | 914 | SIGNAL_ASENDER, /* whether asender wants to be interrupted */ |
915 | GOT_PING_ACK, /* set when we receive a ping_ack packet, ping_wait gets woken */ | ||
916 | }; | 916 | }; |
917 | 917 | ||
918 | struct drbd_tconn { /* is a resource from the config file */ | 918 | struct drbd_tconn { /* is a resource from the config file */ |
@@ -925,6 +925,7 @@ struct drbd_tconn { /* is a resource from the config file */ | |||
925 | struct net_conf *net_conf; /* protected by get_net_conf() and put_net_conf() */ | 925 | struct net_conf *net_conf; /* protected by get_net_conf() and put_net_conf() */ |
926 | atomic_t net_cnt; /* Users of net_conf */ | 926 | atomic_t net_cnt; /* Users of net_conf */ |
927 | wait_queue_head_t net_cnt_wait; | 927 | wait_queue_head_t net_cnt_wait; |
928 | wait_queue_head_t ping_wait; /* Woken upon reception of a ping, and a state change */ | ||
928 | 929 | ||
929 | struct drbd_socket data; /* data/barrier/cstate/parameter packets */ | 930 | struct drbd_socket data; /* data/barrier/cstate/parameter packets */ |
930 | struct drbd_socket meta; /* ping/ack (metadata) packets */ | 931 | struct drbd_socket meta; /* ping/ack (metadata) packets */ |
@@ -1180,12 +1181,12 @@ extern int drbd_send_state(struct drbd_conf *mdev); | |||
1180 | extern int _conn_send_cmd(struct drbd_tconn *tconn, int vnr, struct socket *sock, | 1181 | extern int _conn_send_cmd(struct drbd_tconn *tconn, int vnr, struct socket *sock, |
1181 | enum drbd_packet cmd, struct p_header *h, size_t size, | 1182 | enum drbd_packet cmd, struct p_header *h, size_t size, |
1182 | unsigned msg_flags); | 1183 | unsigned msg_flags); |
1184 | extern int conn_send_cmd(struct drbd_tconn *tconn, int vnr, int use_data_socket, | ||
1185 | enum drbd_packet cmd, struct p_header *h, size_t size); | ||
1183 | extern int conn_send_cmd2(struct drbd_tconn *tconn, enum drbd_packet cmd, | 1186 | extern int conn_send_cmd2(struct drbd_tconn *tconn, enum drbd_packet cmd, |
1184 | char *data, size_t size); | 1187 | char *data, size_t size); |
1185 | #define USE_DATA_SOCKET 1 | 1188 | #define USE_DATA_SOCKET 1 |
1186 | #define USE_META_SOCKET 0 | 1189 | #define USE_META_SOCKET 0 |
1187 | extern int drbd_send_cmd(struct drbd_conf *mdev, int use_data_socket, | ||
1188 | enum drbd_packet cmd, struct p_header *h, size_t size); | ||
1189 | extern int drbd_send_sync_param(struct drbd_conf *mdev, struct syncer_conf *sc); | 1190 | extern int drbd_send_sync_param(struct drbd_conf *mdev, struct syncer_conf *sc); |
1190 | extern int drbd_send_b_ack(struct drbd_conf *mdev, u32 barrier_nr, | 1191 | extern int drbd_send_b_ack(struct drbd_conf *mdev, u32 barrier_nr, |
1191 | u32 set_size); | 1192 | u32 set_size); |
@@ -1886,6 +1887,12 @@ static inline int _drbd_send_cmd(struct drbd_conf *mdev, struct socket *sock, | |||
1886 | return _conn_send_cmd(mdev->tconn, mdev->vnr, sock, cmd, h, size, msg_flags); | 1887 | return _conn_send_cmd(mdev->tconn, mdev->vnr, sock, cmd, h, size, msg_flags); |
1887 | } | 1888 | } |
1888 | 1889 | ||
1890 | static inline int drbd_send_cmd(struct drbd_conf *mdev, int use_data_socket, | ||
1891 | enum drbd_packet cmd, struct p_header *h, size_t size) | ||
1892 | { | ||
1893 | return conn_send_cmd(mdev->tconn, mdev->vnr, use_data_socket, cmd, h, size); | ||
1894 | } | ||
1895 | |||
1889 | static inline int drbd_send_short_cmd(struct drbd_conf *mdev, | 1896 | static inline int drbd_send_short_cmd(struct drbd_conf *mdev, |
1890 | enum drbd_packet cmd) | 1897 | enum drbd_packet cmd) |
1891 | { | 1898 | { |
@@ -1893,16 +1900,16 @@ static inline int drbd_send_short_cmd(struct drbd_conf *mdev, | |||
1893 | return drbd_send_cmd(mdev, USE_DATA_SOCKET, cmd, &h, sizeof(h)); | 1900 | return drbd_send_cmd(mdev, USE_DATA_SOCKET, cmd, &h, sizeof(h)); |
1894 | } | 1901 | } |
1895 | 1902 | ||
1896 | static inline int drbd_send_ping(struct drbd_conf *mdev) | 1903 | static inline int drbd_send_ping(struct drbd_tconn *tconn) |
1897 | { | 1904 | { |
1898 | struct p_header h; | 1905 | struct p_header h; |
1899 | return drbd_send_cmd(mdev, USE_META_SOCKET, P_PING, &h, sizeof(h)); | 1906 | return conn_send_cmd(tconn, 0, USE_META_SOCKET, P_PING, &h, sizeof(h)); |
1900 | } | 1907 | } |
1901 | 1908 | ||
1902 | static inline int drbd_send_ping_ack(struct drbd_conf *mdev) | 1909 | static inline int drbd_send_ping_ack(struct drbd_tconn *tconn) |
1903 | { | 1910 | { |
1904 | struct p_header h; | 1911 | struct p_header h; |
1905 | return drbd_send_cmd(mdev, USE_META_SOCKET, P_PING_ACK, &h, sizeof(h)); | 1912 | return conn_send_cmd(tconn, 0, USE_META_SOCKET, P_PING_ACK, &h, sizeof(h)); |
1906 | } | 1913 | } |
1907 | 1914 | ||
1908 | static inline void drbd_thread_stop(struct drbd_thread *thi) | 1915 | static inline void drbd_thread_stop(struct drbd_thread *thi) |