fs: dlm: let handle callback data as void
authorAlexander Aring <aahringo@redhat.com>
Tue, 2 Nov 2021 19:17:19 +0000 (15:17 -0400)
committerDavid Teigland <teigland@redhat.com>
Tue, 2 Nov 2021 19:39:20 +0000 (14:39 -0500)
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: Alexander Aring <aahringo@redhat.com>
Signed-off-by: David Teigland <teigland@redhat.com>
fs/dlm/lowcomms.c
fs/dlm/lowcomms.h
fs/dlm/midcomms.c

index 6d6dcf0d5ba97d63429d98d087102955e2dfbc79..3f8b015ba7990e65a0eff50361f19b86b76d1739 100644 (file)
@@ -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;
index 4ccae07cf0058306b5aea7f63b4c6dfbd64258c6..8108ea24ec30123849f0c924e0e3d691d8b78ada 100644 (file)
@@ -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);
index 76bdc3a9dc61d55f9fe078f0d7d04585efa19c50..95a5643a950e3adc06cb4a05bee087dff6ae5cd7 100644 (file)
@@ -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);