Skip to content

Commit 5e90c56

Browse files
metze-sambasmfrench
authored andcommitted
smb: server: pass struct smbdirect_socket to {enqueue,get_first}_reassembly()
This will make it easier to move function to the common code in future. Cc: Namjae Jeon <linkinjeon@kernel.org> Cc: Steve French <smfrench@gmail.com> Cc: Tom Talpey <tom@talpey.com> Cc: linux-cifs@vger.kernel.org Cc: samba-technical@lists.samba.org Signed-off-by: Stefan Metzmacher <metze@samba.org> Acked-by: Namjae Jeon <linkinjeon@kernel.org> Signed-off-by: Steve French <stfrench@microsoft.com>
1 parent c0cb982 commit 5e90c56

1 file changed

Lines changed: 7 additions & 13 deletions

File tree

fs/smb/server/transport_rdma.c

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -180,12 +180,10 @@ static void put_recvmsg(struct smbdirect_socket *sc,
180180
queue_work(sc->workqueue, &sc->recv_io.posted.refill_work);
181181
}
182182

183-
static void enqueue_reassembly(struct smb_direct_transport *t,
183+
static void enqueue_reassembly(struct smbdirect_socket *sc,
184184
struct smbdirect_recv_io *recvmsg,
185185
int data_length)
186186
{
187-
struct smbdirect_socket *sc = &t->socket;
188-
189187
spin_lock(&sc->recv_io.reassembly.lock);
190188
list_add_tail(&recvmsg->list, &sc->recv_io.reassembly.list);
191189
sc->recv_io.reassembly.queue_length++;
@@ -200,10 +198,8 @@ static void enqueue_reassembly(struct smb_direct_transport *t,
200198
spin_unlock(&sc->recv_io.reassembly.lock);
201199
}
202200

203-
static struct smbdirect_recv_io *get_first_reassembly(struct smb_direct_transport *t)
201+
static struct smbdirect_recv_io *get_first_reassembly(struct smbdirect_socket *sc)
204202
{
205-
struct smbdirect_socket *sc = &t->socket;
206-
207203
if (!list_empty(&sc->recv_io.reassembly.list))
208204
return list_first_entry(&sc->recv_io.reassembly.list,
209205
struct smbdirect_recv_io, list);
@@ -387,7 +383,7 @@ static void free_transport(struct smb_direct_transport *t)
387383
ksmbd_debug(RDMA, "drain the reassembly queue\n");
388384
do {
389385
spin_lock(&sc->recv_io.reassembly.lock);
390-
recvmsg = get_first_reassembly(t);
386+
recvmsg = get_first_reassembly(sc);
391387
if (recvmsg) {
392388
list_del(&recvmsg->list);
393389
spin_unlock(&sc->recv_io.reassembly.lock);
@@ -494,14 +490,12 @@ static int smb_direct_check_recvmsg(struct smbdirect_recv_io *recvmsg)
494490
static void recv_done(struct ib_cq *cq, struct ib_wc *wc)
495491
{
496492
struct smbdirect_recv_io *recvmsg;
497-
struct smb_direct_transport *t;
498493
struct smbdirect_socket *sc;
499494
struct smbdirect_socket_parameters *sp;
500495

501496
recvmsg = container_of(wc->wr_cqe, struct smbdirect_recv_io, cqe);
502497
sc = recvmsg->socket;
503498
sp = &sc->parameters;
504-
t = container_of(sc, struct smb_direct_transport, socket);
505499

506500
if (wc->status != IB_WC_SUCCESS || wc->opcode != IB_WC_RECV) {
507501
put_recvmsg(sc, recvmsg);
@@ -539,7 +533,7 @@ static void recv_done(struct ib_cq *cq, struct ib_wc *wc)
539533
sc->recv_io.reassembly.full_packet_received = true;
540534
WARN_ON_ONCE(sc->status != SMBDIRECT_SOCKET_NEGOTIATE_NEEDED);
541535
sc->status = SMBDIRECT_SOCKET_NEGOTIATE_RUNNING;
542-
enqueue_reassembly(t, recvmsg, 0);
536+
enqueue_reassembly(sc, recvmsg, 0);
543537
wake_up(&sc->status_wait);
544538
return;
545539
case SMBDIRECT_EXPECT_DATA_TRANSFER: {
@@ -607,7 +601,7 @@ static void recv_done(struct ib_cq *cq, struct ib_wc *wc)
607601
if (sc->recv_io.credits.target > old_recv_credit_target)
608602
queue_work(sc->workqueue, &sc->recv_io.posted.refill_work);
609603

610-
enqueue_reassembly(t, recvmsg, (int)data_length);
604+
enqueue_reassembly(sc, recvmsg, (int)data_length);
611605
wake_up(&sc->recv_io.reassembly.wait_queue);
612606
} else
613607
put_recvmsg(sc, recvmsg);
@@ -702,7 +696,7 @@ static int smb_direct_read(struct ksmbd_transport *t, char *buf,
702696
to_read = size;
703697
offset = sc->recv_io.reassembly.first_entry_offset;
704698
while (data_read < size) {
705-
recvmsg = get_first_reassembly(st);
699+
recvmsg = get_first_reassembly(sc);
706700
data_transfer = smbdirect_recv_io_payload(recvmsg);
707701
data_length = le32_to_cpu(data_transfer->data_length);
708702
remaining_data_length =
@@ -2054,7 +2048,7 @@ static int smb_direct_prepare(struct ksmbd_transport *t)
20542048
if (ret <= 0 || sc->status != SMBDIRECT_SOCKET_NEGOTIATE_RUNNING)
20552049
return ret < 0 ? ret : -ETIMEDOUT;
20562050

2057-
recvmsg = get_first_reassembly(st);
2051+
recvmsg = get_first_reassembly(sc);
20582052
if (!recvmsg)
20592053
return -ECONNABORTED;
20602054

0 commit comments

Comments
 (0)