Commit 5c16febb authored by Alexander Aring's avatar Alexander Aring Committed by David Teigland
Browse files

fs: dlm: let handle callback data as void



This patch changes the dlm_lowcomms_new_msg() function pointer private data
from "struct mhandle *" to "void *" to provide different structures than
just "struct mhandle".

Signed-off-by: default avatarAlexander Aring <aahringo@redhat.com>
Signed-off-by: default avatarDavid Teigland <teigland@redhat.com>
parent 3cb5977c
Loading
Loading
Loading
Loading
+9 −10
Original line number Diff line number Diff line
@@ -1205,8 +1205,7 @@ static struct writequeue_entry *new_writequeue_entry(struct connection *con,

static struct writequeue_entry *new_wq_entry(struct connection *con, int len,
					     gfp_t allocation, char **ppc,
					     void (*cb)(struct dlm_mhandle *mh),
					     struct dlm_mhandle *mh)
					     void (*cb)(void *data), void *data)
{
	struct writequeue_entry *e;

@@ -1218,7 +1217,7 @@ static struct writequeue_entry *new_wq_entry(struct connection *con, int len,

			*ppc = page_address(e->page) + e->end;
			if (cb)
				cb(mh);
				cb(data);

			e->end += len;
			e->users++;
@@ -1240,7 +1239,7 @@ static struct writequeue_entry *new_wq_entry(struct connection *con, int len,

	spin_lock(&con->writequeue_lock);
	if (cb)
		cb(mh);
		cb(data);

	list_add_tail(&e->list, &con->writequeue);
	spin_unlock(&con->writequeue_lock);
@@ -1250,8 +1249,8 @@ static struct writequeue_entry *new_wq_entry(struct connection *con, int len,

static struct dlm_msg *dlm_lowcomms_new_msg_con(struct connection *con, int len,
						gfp_t allocation, char **ppc,
						void (*cb)(struct dlm_mhandle *mh),
						struct dlm_mhandle *mh)
						void (*cb)(void *data),
						void *data)
{
	struct writequeue_entry *e;
	struct dlm_msg *msg;
@@ -1274,7 +1273,7 @@ static struct dlm_msg *dlm_lowcomms_new_msg_con(struct connection *con, int len,

	kref_init(&msg->ref);

	e = new_wq_entry(con, len, allocation, ppc, cb, mh);
	e = new_wq_entry(con, len, allocation, ppc, cb, data);
	if (!e) {
		if (sleepable)
			mutex_unlock(&con->wq_alloc);
@@ -1294,8 +1293,8 @@ static struct dlm_msg *dlm_lowcomms_new_msg_con(struct connection *con, int len,
}

struct dlm_msg *dlm_lowcomms_new_msg(int nodeid, int len, gfp_t allocation,
				     char **ppc, void (*cb)(struct dlm_mhandle *mh),
				     struct dlm_mhandle *mh)
				     char **ppc, void (*cb)(void *data),
				     void *data)
{
	struct connection *con;
	struct dlm_msg *msg;
@@ -1316,7 +1315,7 @@ struct dlm_msg *dlm_lowcomms_new_msg(int nodeid, int len, gfp_t allocation,
		return NULL;
	}

	msg = dlm_lowcomms_new_msg_con(con, len, allocation, ppc, cb, mh);
	msg = dlm_lowcomms_new_msg_con(con, len, allocation, ppc, cb, data);
	if (!msg) {
		srcu_read_unlock(&connections_srcu, idx);
		return NULL;
+2 −2
Original line number Diff line number Diff line
@@ -38,8 +38,8 @@ void dlm_lowcomms_stop(void);
void dlm_lowcomms_exit(void);
int dlm_lowcomms_close(int nodeid);
struct dlm_msg *dlm_lowcomms_new_msg(int nodeid, int len, gfp_t allocation,
				     char **ppc, void (*cb)(struct dlm_mhandle *mh),
				     struct dlm_mhandle *mh);
				     char **ppc, void (*cb)(void *data),
				     void *data);
void dlm_lowcomms_commit_msg(struct dlm_msg *msg);
void dlm_lowcomms_put_msg(struct dlm_msg *msg);
int dlm_lowcomms_resend_msg(struct dlm_msg *msg);
+3 −1
Original line number Diff line number Diff line
@@ -1020,8 +1020,10 @@ static void dlm_fill_opts_header(struct dlm_opts *opts, uint16_t inner_len,
	header_out(&opts->o_header);
}

static void midcomms_new_msg_cb(struct dlm_mhandle *mh)
static void midcomms_new_msg_cb(void *data)
{
	struct dlm_mhandle *mh = data;

	atomic_inc(&mh->node->send_queue_cnt);

	spin_lock(&mh->node->send_queue_lock);