Thread (16 messages) 16 messages, 3 authors, 2022-08-30

Re: [PATCH] rnbd-srv: remove 'dir' argument from rnbd_srv_rdma_ev

From: Guoqing Jiang <hidden>
Date: 2022-08-26 11:38:52
Also in: linux-rdma


On 8/26/22 7:29 PM, Jinpu Wang wrote:
On Fri, Aug 26, 2022 at 1:26 PM Guoqing Jiang [off-list ref] wrote:
quoted

On 8/26/22 6:48 PM, Jinpu Wang wrote:
quoted
On Fri, Aug 26, 2022 at 10:11 AM Guoqing Jiang [off-list ref] wrote:
quoted
Since all callers (process_{read,write}) set id->dir, no need to
pass 'dir' again.

Signed-off-by: Guoqing Jiang <redacted>
---
   drivers/block/rnbd/rnbd-srv.c          | 9 ++++-----
   drivers/block/rnbd/rnbd-srv.h          | 1 +
   drivers/infiniband/ulp/rtrs/rtrs-srv.c | 4 ++--
   drivers/infiniband/ulp/rtrs/rtrs.h     | 3 +--
   4 files changed, 8 insertions(+), 9 deletions(-)
diff --git a/drivers/block/rnbd/rnbd-srv.c b/drivers/block/rnbd/rnbd-srv.c
index 3f6c268e04ef..9600715f1029 100644
--- a/drivers/block/rnbd/rnbd-srv.c
+++ b/drivers/block/rnbd/rnbd-srv.c
@@ -368,10 +368,9 @@ static int process_msg_sess_info(struct rnbd_srv_session *srv_sess,
                                   const void *msg, size_t len,
                                   void *data, size_t datalen);

-static int rnbd_srv_rdma_ev(void *priv,
-                           struct rtrs_srv_op *id, int dir,
-                           void *data, size_t datalen, const void *usr,
-                           size_t usrlen)
+static int rnbd_srv_rdma_ev(void *priv, struct rtrs_srv_op *id,
+                           void *data, size_t datalen,
+                           const void *usr, size_t usrlen)
   {
          struct rnbd_srv_session *srv_sess = priv;
          const struct rnbd_msg_hdr *hdr = usr;
@@ -398,7 +397,7 @@ static int rnbd_srv_rdma_ev(void *priv,
                  break;
          default:
                  pr_warn("Received unexpected message type %d with dir %d from session %s\n",
-                       type, dir, srv_sess->sessname);
+                       type, id->dir, srv_sess->sessname);
                  return -EINVAL;
          }
diff --git a/drivers/block/rnbd/rnbd-srv.h b/drivers/block/rnbd/rnbd-srv.h
index 081bceaf4ae9..5a0ef6c2b5c7 100644
--- a/drivers/block/rnbd/rnbd-srv.h
+++ b/drivers/block/rnbd/rnbd-srv.h
@@ -14,6 +14,7 @@
   #include <linux/kref.h>

   #include <rtrs.h>
+#include <rtrs-srv.h>
why do we need this?
Otherwise, compiler complains

drivers/block/rnbd/rnbd-srv.c: In function ‘rnbd_srv_rdma_ev’:
drivers/block/rnbd/rnbd-srv.c:400:33: error: invalid use of undefined
type ‘struct rtrs_srv_op’
    400 |                         type, id->dir, srv_sess->sessname);

Thanks,
Guoqing
ah, okay, this reminds me, why we have dir there, we don't want to
export too much detail regarding the rtrs_srv_op to
rnbd-server, it is supposed to be transparent  to rnbd-srv.
What is the issue with more details are exported from rtrs-srv? Both of 
the modules
are run in the same machine.

And I guess we can just pass parameters with register after remove an 
argument,
otherwise need to push/pop stack with more than six parameters for x64.

Thanks,
Guoqing
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help