From: Philipp Reisner <philipp.reisner@linbit.com>
To: linux-kernel@vger.kernel.org, Jens Axboe <axboe@kernel.dk>
Cc: drbd-dev@lists.linbit.com
Subject: [PATCH 07/54] drbd: Get rid of USE_DATA_SOCKET and USE_META_SOCKET
Date: Mon, 5 Sep 2011 13:44:58 +0200 [thread overview]
Message-ID: <1315223145-20640-8-git-send-email-philipp.reisner@linbit.com> (raw)
In-Reply-To: <1315223145-20640-1-git-send-email-philipp.reisner@linbit.com>
From: Andreas Gruenbacher <agruen@linbit.com>
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
---
drivers/block/drbd/drbd_int.h | 14 +++++-------
drivers/block/drbd/drbd_main.c | 46 ++++++++++++++--------------------------
2 files changed, 22 insertions(+), 38 deletions(-)
diff --git a/drivers/block/drbd/drbd_int.h b/drivers/block/drbd/drbd_int.h
index e7fa168..8663a1d 100644
--- a/drivers/block/drbd/drbd_int.h
+++ b/drivers/block/drbd/drbd_int.h
@@ -1176,12 +1176,10 @@ extern int drbd_send_state(struct drbd_conf *mdev);
extern int _conn_send_cmd(struct drbd_tconn *tconn, int vnr, struct socket *sock,
enum drbd_packet cmd, struct p_header *h, size_t size,
unsigned msg_flags);
-extern int conn_send_cmd(struct drbd_tconn *tconn, int vnr, int use_data_socket,
+extern int conn_send_cmd(struct drbd_tconn *tconn, int vnr, struct drbd_socket *sock,
enum drbd_packet cmd, struct p_header *h, size_t size);
extern int conn_send_cmd2(struct drbd_tconn *tconn, enum drbd_packet cmd,
char *data, size_t size);
-#define USE_DATA_SOCKET 1
-#define USE_META_SOCKET 0
extern int drbd_send_sync_param(struct drbd_conf *mdev);
extern int drbd_send_b_ack(struct drbd_conf *mdev, u32 barrier_nr,
u32 set_size);
@@ -1929,29 +1927,29 @@ static inline int _drbd_send_cmd(struct drbd_conf *mdev, struct socket *sock,
return _conn_send_cmd(mdev->tconn, mdev->vnr, sock, cmd, h, size, msg_flags);
}
-static inline int drbd_send_cmd(struct drbd_conf *mdev, int use_data_socket,
+static inline int drbd_send_cmd(struct drbd_conf *mdev, struct drbd_socket *sock,
enum drbd_packet cmd, struct p_header *h, size_t size)
{
- return !conn_send_cmd(mdev->tconn, mdev->vnr, use_data_socket, cmd, h, size);
+ return !conn_send_cmd(mdev->tconn, mdev->vnr, sock, cmd, h, size);
}
static inline int drbd_send_short_cmd(struct drbd_conf *mdev,
enum drbd_packet cmd)
{
struct p_header h;
- return drbd_send_cmd(mdev, USE_DATA_SOCKET, cmd, &h, sizeof(h));
+ return drbd_send_cmd(mdev, &mdev->tconn->data, cmd, &h, sizeof(h));
}
static inline int drbd_send_ping(struct drbd_tconn *tconn)
{
struct p_header h;
- return !conn_send_cmd(tconn, 0, USE_META_SOCKET, P_PING, &h, sizeof(h));
+ return !conn_send_cmd(tconn, 0, &tconn->meta, P_PING, &h, sizeof(h));
}
static inline int drbd_send_ping_ack(struct drbd_tconn *tconn)
{
struct p_header h;
- return !conn_send_cmd(tconn, 0, USE_META_SOCKET, P_PING_ACK, &h, sizeof(h));
+ return !conn_send_cmd(tconn, 0, &tconn->meta, P_PING_ACK, &h, sizeof(h));
}
static inline int drbd_send_state_req(struct drbd_conf *mdev,
diff --git a/drivers/block/drbd/drbd_main.c b/drivers/block/drbd/drbd_main.c
index c063426..3e1cda9 100644
--- a/drivers/block/drbd/drbd_main.c
+++ b/drivers/block/drbd/drbd_main.c
@@ -736,29 +736,15 @@ int _conn_send_cmd(struct drbd_tconn *tconn, int vnr, struct socket *sock,
/* don't pass the socket. we may only look at it
* when we hold the appropriate socket mutex.
*/
-int conn_send_cmd(struct drbd_tconn *tconn, int vnr, int use_data_socket,
+int conn_send_cmd(struct drbd_tconn *tconn, int vnr, struct drbd_socket *sock,
enum drbd_packet cmd, struct p_header *h, size_t size)
{
- struct socket *sock;
int err = -EIO;
- if (use_data_socket) {
- mutex_lock(&tconn->data.mutex);
- sock = tconn->data.socket;
- } else {
- mutex_lock(&tconn->meta.mutex);
- sock = tconn->meta.socket;
- }
-
- /* drbd_disconnect() could have called drbd_free_sock()
- * while we were waiting in down()... */
- if (likely(sock != NULL))
- err = _conn_send_cmd(tconn, vnr, sock, cmd, h, size, 0);
-
- if (use_data_socket)
- mutex_unlock(&tconn->data.mutex);
- else
- mutex_unlock(&tconn->meta.mutex);
+ mutex_lock(&sock->mutex);
+ if (sock->socket)
+ err = _conn_send_cmd(tconn, vnr, sock->socket, cmd, h, size, 0);
+ mutex_unlock(&sock->mutex);
return err;
}
@@ -900,7 +886,7 @@ int _drbd_send_uuids(struct drbd_conf *mdev, u64 uuid_flags)
put_ldev(mdev);
- return drbd_send_cmd(mdev, USE_DATA_SOCKET, P_UUIDS, &p.head, sizeof(p));
+ return drbd_send_cmd(mdev, &mdev->tconn->data, P_UUIDS, &p.head, sizeof(p));
}
int drbd_send_uuids(struct drbd_conf *mdev)
@@ -944,7 +930,7 @@ int drbd_gen_and_send_sync_uuid(struct drbd_conf *mdev)
drbd_md_sync(mdev);
p.uuid = cpu_to_be64(uuid);
- return drbd_send_cmd(mdev, USE_DATA_SOCKET, P_SYNC_UUID, &p.head, sizeof(p));
+ return drbd_send_cmd(mdev, &mdev->tconn->data, P_SYNC_UUID, &p.head, sizeof(p));
}
int drbd_send_sizes(struct drbd_conf *mdev, int trigger_reply, enum dds_flags flags)
@@ -976,7 +962,7 @@ int drbd_send_sizes(struct drbd_conf *mdev, int trigger_reply, enum dds_flags fl
p.queue_order_type = cpu_to_be16(q_order_type);
p.dds_flags = cpu_to_be16(flags);
- ok = drbd_send_cmd(mdev, USE_DATA_SOCKET, P_SIZES, &p.head, sizeof(p));
+ ok = drbd_send_cmd(mdev, &mdev->tconn->data, P_SIZES, &p.head, sizeof(p));
return ok;
}
@@ -1011,7 +997,7 @@ int _conn_send_state_req(struct drbd_tconn *tconn, int vnr, enum drbd_packet cmd
p.mask = cpu_to_be32(mask.i);
p.val = cpu_to_be32(val.i);
- return !conn_send_cmd(tconn, vnr, USE_DATA_SOCKET, cmd, &p.head, sizeof(p));
+ return !conn_send_cmd(tconn, vnr, &tconn->data, cmd, &p.head, sizeof(p));
}
int drbd_send_sr_reply(struct drbd_conf *mdev, enum drbd_state_rv retcode)
@@ -1020,7 +1006,7 @@ int drbd_send_sr_reply(struct drbd_conf *mdev, enum drbd_state_rv retcode)
p.retcode = cpu_to_be32(retcode);
- return drbd_send_cmd(mdev, USE_META_SOCKET, P_STATE_CHG_REPLY, &p.head, sizeof(p));
+ return drbd_send_cmd(mdev, &mdev->tconn->meta, P_STATE_CHG_REPLY, &p.head, sizeof(p));
}
int conn_send_sr_reply(struct drbd_tconn *tconn, enum drbd_state_rv retcode)
@@ -1030,7 +1016,7 @@ int conn_send_sr_reply(struct drbd_tconn *tconn, enum drbd_state_rv retcode)
p.retcode = cpu_to_be32(retcode);
- return !conn_send_cmd(tconn, 0, USE_META_SOCKET, cmd, &p.head, sizeof(p));
+ return !conn_send_cmd(tconn, 0, &tconn->meta, cmd, &p.head, sizeof(p));
}
int fill_bitmap_rle_bits(struct drbd_conf *mdev,
@@ -1254,7 +1240,7 @@ int drbd_send_b_ack(struct drbd_conf *mdev, u32 barrier_nr, u32 set_size)
if (mdev->state.conn < C_CONNECTED)
return false;
- ok = drbd_send_cmd(mdev, USE_META_SOCKET, P_BARRIER_ACK, &p.head, sizeof(p));
+ ok = drbd_send_cmd(mdev, &mdev->tconn->meta, P_BARRIER_ACK, &p.head, sizeof(p));
return ok;
}
@@ -1279,7 +1265,7 @@ static int _drbd_send_ack(struct drbd_conf *mdev, enum drbd_packet cmd,
if (!mdev->tconn->meta.socket || mdev->state.conn < C_CONNECTED)
return false;
- ok = drbd_send_cmd(mdev, USE_META_SOCKET, cmd, &p.head, sizeof(p));
+ ok = drbd_send_cmd(mdev, &mdev->tconn->meta, cmd, &p.head, sizeof(p));
return ok;
}
@@ -1337,7 +1323,7 @@ int drbd_send_drequest(struct drbd_conf *mdev, int cmd,
p.block_id = block_id;
p.blksize = cpu_to_be32(size);
- ok = drbd_send_cmd(mdev, USE_DATA_SOCKET, cmd, &p.head, sizeof(p));
+ ok = drbd_send_cmd(mdev, &mdev->tconn->data, cmd, &p.head, sizeof(p));
return ok;
}
@@ -1371,7 +1357,7 @@ int drbd_send_ov_request(struct drbd_conf *mdev, sector_t sector, int size)
p.block_id = ID_SYNCER /* unused */;
p.blksize = cpu_to_be32(size);
- ok = drbd_send_cmd(mdev, USE_DATA_SOCKET, P_OV_REQUEST, &p.head, sizeof(p));
+ ok = drbd_send_cmd(mdev, &mdev->tconn->data, P_OV_REQUEST, &p.head, sizeof(p));
return ok;
}
@@ -1668,7 +1654,7 @@ int drbd_send_oos(struct drbd_conf *mdev, struct drbd_request *req)
p.sector = cpu_to_be64(req->i.sector);
p.blksize = cpu_to_be32(req->i.size);
- return drbd_send_cmd(mdev, USE_DATA_SOCKET, P_OUT_OF_SYNC, &p.head, sizeof(p));
+ return drbd_send_cmd(mdev, &mdev->tconn->data, P_OUT_OF_SYNC, &p.head, sizeof(p));
}
/*
--
1.7.4.1
next prev parent reply other threads:[~2011-09-05 11:46 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-05 11:44 [RFC 00/54] drbd: part 6 of adding multiple volume support to drbd Philipp Reisner
2011-09-05 11:44 ` [PATCH 01/54] drbd: drbd_get_data_sock(): Return 0 upon success and an error code otherwise Philipp Reisner
2011-09-05 11:44 ` [PATCH 02/54] drbd: Add drbd_send_all(): Send an entire buffer Philipp Reisner
2011-09-05 11:44 ` [PATCH 03/54] drbd: conn_send_cmd2(): Return 0 upon success and an error code otherwise Philipp Reisner
2011-09-05 11:44 ` [PATCH 04/54] drbd: _conn_send_cmd(): " Philipp Reisner
2011-09-05 11:44 ` [PATCH 05/54] drbd: _drbd_send_cmd(): " Philipp Reisner
2011-09-05 11:44 ` [PATCH 06/54] drbd: conn_send_cmd(): " Philipp Reisner
2011-09-05 11:44 ` Philipp Reisner [this message]
2011-09-05 11:44 ` [PATCH 08/54] drbd: drbd_send_cmd(): " Philipp Reisner
2011-09-05 11:45 ` [PATCH 09/54] drbd: drbd_send_sync_param(): " Philipp Reisner
2011-09-05 11:45 ` [PATCH 10/54] drbd: drbd_send_state(): " Philipp Reisner
2011-09-05 11:45 ` [PATCH 11/54] drbd: drbd_send_handshake(): " Philipp Reisner
2011-09-05 11:45 ` [PATCH 12/54] drbd: drbd_send_protocol(): " Philipp Reisner
2011-09-05 11:45 ` [PATCH 13/54] drbd: drbd_send_uuids() and its variants: " Philipp Reisner
2011-09-05 11:45 ` [PATCH 14/54] drbd: drbd_gen_and_send_sync_uuid(): Return void: the result is never used Philipp Reisner
2011-09-05 11:45 ` [PATCH 15/54] drbd: drbd_send_sizes(): Return 0 upon success and an error code otherwise Philipp Reisner
2011-09-05 11:45 ` [PATCH 16/54] drbd: _conn_send_state_req(): " Philipp Reisner
2011-09-05 11:45 ` [PATCH 17/54] drbd: conn_send_state_req(): " Philipp Reisner
2011-09-05 11:45 ` [PATCH 18/54] drbd: drbd_send_state_req(): " Philipp Reisner
2011-09-05 11:45 ` [PATCH 19/54] drbd: drbd_send_sr_reply(): Return void: the result is never used Philipp Reisner
2011-09-05 11:45 ` [PATCH 20/54] drbd: drbd_send_b_ack(): " Philipp Reisner
2011-09-05 11:45 ` [PATCH 21/54] drbd: _drbd_send_ack(): Return 0 upon success and an error code otherwise Philipp Reisner
2011-09-05 11:45 ` [PATCH 22/54] drbd: drbd_send_ack(): " Philipp Reisner
2011-09-05 11:45 ` [PATCH 23/54] drbd: drbd_send_ack_{dp,rp}(): Return void: the result is never used Philipp Reisner
2011-09-05 11:45 ` [PATCH 24/54] drbd: drbd_send_ack_ex(): Return 0 upon success and an error code otherwise Philipp Reisner
2011-09-05 11:45 ` [PATCH 25/54] drbd: drbd_send_drequest(): " Philipp Reisner
2011-09-05 11:45 ` [PATCH 26/54] drbd: drbd_send_drequest_csum(): " Philipp Reisner
2011-09-05 11:45 ` [PATCH 27/54] drbd: drbd_send_oos(): " Philipp Reisner
2011-09-05 11:45 ` [PATCH 28/54] drbd: _drbd_no_send_page(): " Philipp Reisner
2011-09-05 11:45 ` [PATCH 29/54] drbd: _drbd_send_page(): " Philipp Reisner
2011-09-05 11:45 ` [PATCH 30/54] drbd: _drbd_send_zc_ee(): " Philipp Reisner
2011-09-05 11:45 ` [PATCH 31/54] drbd: drbd_send_block(): " Philipp Reisner
2011-09-05 11:45 ` [PATCH 32/54] drbd: _drbd_send_bio(), _drbd_send_zc_bio(): " Philipp Reisner
2011-09-05 11:45 ` [PATCH 33/54] drbd: drbd_send_dblock(): " Philipp Reisner
2011-09-05 11:45 ` [PATCH 34/54] drbd: drbd_send_short_cmd(): " Philipp Reisner
2011-09-05 11:45 ` [PATCH 35/54] drbd: Temporarily change the return type of all worker callbacks Philipp Reisner
2011-09-05 11:45 ` [PATCH 36/54] drbd: Make all worker callbacks return 0 upon success and an error code otherwise Philipp Reisner
2011-09-05 11:45 ` [PATCH 37/54] drbd: drbd_process_done_ee(): Return " Philipp Reisner
2011-09-05 11:45 ` [PATCH 38/54] drbd: decode_header(): " Philipp Reisner
2011-09-05 11:45 ` [PATCH 39/54] drbd: drbd_recv_header(): " Philipp Reisner
2011-09-05 11:45 ` [PATCH 40/54] drbd: drbd_drain_block(): " Philipp Reisner
2011-09-05 11:45 ` [PATCH 41/54] drbd: recv_dless_read(): " Philipp Reisner
2011-09-05 11:45 ` [PATCH 42/54] drbd: recv_resync_read(): " Philipp Reisner
2011-09-05 11:45 ` [PATCH 43/54] drbd: send_bitmap_rle_or_plain(): Error handling cleanup Philipp Reisner
2011-09-05 11:45 ` [PATCH 44/54] drbd: Add drbd_recv_all(): Receive an entire buffer Philipp Reisner
2011-09-05 11:45 ` [PATCH 45/54] drbd: Make all command handlers return 0 upon success and an error code otherwise Philipp Reisner
2011-09-05 11:45 ` [PATCH 46/54] drbd: drbd_bm_read() never returns a positive value through drbd_bitmap_io() Philipp Reisner
2011-09-05 11:45 ` [PATCH 47/54] drbd: _drbd_md_sync_page_io(): Return 0 upon success and an error code otherwise Philipp Reisner
2011-09-05 11:45 ` [PATCH 48/54] drbd: drbd_md_sync_page_io(): " Philipp Reisner
2011-09-05 11:45 ` [PATCH 49/54] drbd: Remove duplicate initialization Philipp Reisner
2011-09-05 11:45 ` [PATCH 50/54] drbd: Remove unnecessary assertion Philipp Reisner
2011-09-05 11:45 ` [PATCH 51/54] drbd: drbd_may_do_local_read(): Use bool/true/false Philipp Reisner
2011-09-05 11:45 ` [PATCH 52/54] drbd: Rename various functions from *_oos_* to *_out_of_sync_* for clarity Philipp Reisner
2011-09-05 11:45 ` [PATCH 53/54] drbd: Get rid of typedef drbd_work_cb Philipp Reisner
2011-09-05 11:45 ` [PATCH 54/54] drbd: Introduce and use drbd_recv_all_warn() Philipp Reisner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1315223145-20640-8-git-send-email-philipp.reisner@linbit.com \
--to=philipp.reisner@linbit.com \
--cc=axboe@kernel.dk \
--cc=drbd-dev@lists.linbit.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®