1313#include "cifsproto.h"
1414#include "smb2proto.h"
1515
16- static struct smbd_response * get_receive_buffer (
16+ static struct smbdirect_recv_io * get_receive_buffer (
1717 struct smbd_connection * info );
1818static void put_receive_buffer (
1919 struct smbd_connection * info ,
20- struct smbd_response * response );
20+ struct smbdirect_recv_io * response );
2121static int allocate_receive_buffers (struct smbd_connection * info , int num_buf );
2222static void destroy_receive_buffers (struct smbd_connection * info );
2323
2424static void enqueue_reassembly (
2525 struct smbd_connection * info ,
26- struct smbd_response * response , int data_length );
27- static struct smbd_response * _get_first_reassembly (
26+ struct smbdirect_recv_io * response , int data_length );
27+ static struct smbdirect_recv_io * _get_first_reassembly (
2828 struct smbd_connection * info );
2929
3030static int smbd_post_recv (
3131 struct smbd_connection * info ,
32- struct smbd_response * response );
32+ struct smbdirect_recv_io * response );
3333
3434static int smbd_post_send_empty (struct smbd_connection * info );
3535
@@ -260,7 +260,7 @@ static inline void *smbd_request_payload(struct smbd_request *request)
260260 return (void * )request -> packet ;
261261}
262262
263- static inline void * smbd_response_payload (struct smbd_response * response )
263+ static inline void * smbdirect_recv_io_payload (struct smbdirect_recv_io * response )
264264{
265265 return (void * )response -> packet ;
266266}
@@ -315,12 +315,13 @@ static void dump_smbdirect_negotiate_resp(struct smbdirect_negotiate_resp *resp)
315315 * return value: true if negotiation is a success, false if failed
316316 */
317317static bool process_negotiation_response (
318- struct smbd_response * response , int packet_length )
318+ struct smbdirect_recv_io * response , int packet_length )
319319{
320- struct smbd_connection * info = response -> info ;
321- struct smbdirect_socket * sc = & info -> socket ;
320+ struct smbdirect_socket * sc = response -> socket ;
321+ struct smbd_connection * info =
322+ container_of (sc , struct smbd_connection , socket );
322323 struct smbdirect_socket_parameters * sp = & sc -> parameters ;
323- struct smbdirect_negotiate_resp * packet = smbd_response_payload (response );
324+ struct smbdirect_negotiate_resp * packet = smbdirect_recv_io_payload (response );
324325
325326 if (packet_length < sizeof (struct smbdirect_negotiate_resp )) {
326327 log_rdma_event (ERR ,
@@ -391,7 +392,7 @@ static void smbd_post_send_credits(struct work_struct *work)
391392{
392393 int ret = 0 ;
393394 int rc ;
394- struct smbd_response * response ;
395+ struct smbdirect_recv_io * response ;
395396 struct smbd_connection * info =
396397 container_of (work , struct smbd_connection ,
397398 post_send_credits_work );
@@ -442,10 +443,11 @@ static void smbd_post_send_credits(struct work_struct *work)
442443static void recv_done (struct ib_cq * cq , struct ib_wc * wc )
443444{
444445 struct smbdirect_data_transfer * data_transfer ;
445- struct smbd_response * response =
446- container_of (wc -> wr_cqe , struct smbd_response , cqe );
447- struct smbd_connection * info = response -> info ;
448- struct smbdirect_socket * sc = & info -> socket ;
446+ struct smbdirect_recv_io * response =
447+ container_of (wc -> wr_cqe , struct smbdirect_recv_io , cqe );
448+ struct smbdirect_socket * sc = response -> socket ;
449+ struct smbd_connection * info =
450+ container_of (sc , struct smbd_connection , socket );
449451 int data_length = 0 ;
450452
451453 log_rdma_recv (INFO , "response=0x%p type=%d wc status=%d wc opcode %d byte_len=%d pkey_index=%u\n" ,
@@ -467,7 +469,7 @@ static void recv_done(struct ib_cq *cq, struct ib_wc *wc)
467469 switch (sc -> recv_io .expected ) {
468470 /* SMBD negotiation response */
469471 case SMBDIRECT_EXPECT_NEGOTIATE_REP :
470- dump_smbdirect_negotiate_resp (smbd_response_payload (response ));
472+ dump_smbdirect_negotiate_resp (smbdirect_recv_io_payload (response ));
471473 info -> full_packet_received = true;
472474 info -> negotiate_done =
473475 process_negotiation_response (response , wc -> byte_len );
@@ -477,7 +479,7 @@ static void recv_done(struct ib_cq *cq, struct ib_wc *wc)
477479
478480 /* SMBD data transfer packet */
479481 case SMBDIRECT_EXPECT_DATA_TRANSFER :
480- data_transfer = smbd_response_payload (response );
482+ data_transfer = smbdirect_recv_io_payload (response );
481483 data_length = le32_to_cpu (data_transfer -> data_length );
482484
483485 if (data_length ) {
@@ -1034,7 +1036,7 @@ static int smbd_post_send_full_iter(struct smbd_connection *info,
10341036 * The interaction is controlled by send/receive credit system
10351037 */
10361038static int smbd_post_recv (
1037- struct smbd_connection * info , struct smbd_response * response )
1039+ struct smbd_connection * info , struct smbdirect_recv_io * response )
10381040{
10391041 struct smbdirect_socket * sc = & info -> socket ;
10401042 struct smbdirect_socket_parameters * sp = & sc -> parameters ;
@@ -1074,7 +1076,7 @@ static int smbd_negotiate(struct smbd_connection *info)
10741076{
10751077 struct smbdirect_socket * sc = & info -> socket ;
10761078 int rc ;
1077- struct smbd_response * response = get_receive_buffer (info );
1079+ struct smbdirect_recv_io * response = get_receive_buffer (info );
10781080
10791081 sc -> recv_io .expected = SMBDIRECT_EXPECT_NEGOTIATE_REP ;
10801082 rc = smbd_post_recv (info , response );
@@ -1119,7 +1121,7 @@ static int smbd_negotiate(struct smbd_connection *info)
11191121 */
11201122static void enqueue_reassembly (
11211123 struct smbd_connection * info ,
1122- struct smbd_response * response ,
1124+ struct smbdirect_recv_io * response ,
11231125 int data_length )
11241126{
11251127 spin_lock (& info -> reassembly_queue_lock );
@@ -1143,14 +1145,14 @@ static void enqueue_reassembly(
11431145 * Caller is responsible for locking
11441146 * return value: the first entry if any, NULL if queue is empty
11451147 */
1146- static struct smbd_response * _get_first_reassembly (struct smbd_connection * info )
1148+ static struct smbdirect_recv_io * _get_first_reassembly (struct smbd_connection * info )
11471149{
1148- struct smbd_response * ret = NULL ;
1150+ struct smbdirect_recv_io * ret = NULL ;
11491151
11501152 if (!list_empty (& info -> reassembly_queue )) {
11511153 ret = list_first_entry (
11521154 & info -> reassembly_queue ,
1153- struct smbd_response , list );
1155+ struct smbdirect_recv_io , list );
11541156 }
11551157 return ret ;
11561158}
@@ -1161,16 +1163,16 @@ static struct smbd_response *_get_first_reassembly(struct smbd_connection *info)
11611163 * pre-allocated in advance.
11621164 * return value: the receive buffer, NULL if none is available
11631165 */
1164- static struct smbd_response * get_receive_buffer (struct smbd_connection * info )
1166+ static struct smbdirect_recv_io * get_receive_buffer (struct smbd_connection * info )
11651167{
1166- struct smbd_response * ret = NULL ;
1168+ struct smbdirect_recv_io * ret = NULL ;
11671169 unsigned long flags ;
11681170
11691171 spin_lock_irqsave (& info -> receive_queue_lock , flags );
11701172 if (!list_empty (& info -> receive_queue )) {
11711173 ret = list_first_entry (
11721174 & info -> receive_queue ,
1173- struct smbd_response , list );
1175+ struct smbdirect_recv_io , list );
11741176 list_del (& ret -> list );
11751177 info -> count_receive_queue -- ;
11761178 info -> count_get_receive_buffer ++ ;
@@ -1187,7 +1189,7 @@ static struct smbd_response *get_receive_buffer(struct smbd_connection *info)
11871189 * receive buffer is returned.
11881190 */
11891191static void put_receive_buffer (
1190- struct smbd_connection * info , struct smbd_response * response )
1192+ struct smbd_connection * info , struct smbdirect_recv_io * response )
11911193{
11921194 struct smbdirect_socket * sc = & info -> socket ;
11931195 unsigned long flags ;
@@ -1212,8 +1214,9 @@ static void put_receive_buffer(
12121214/* Preallocate all receive buffer on transport establishment */
12131215static int allocate_receive_buffers (struct smbd_connection * info , int num_buf )
12141216{
1217+ struct smbdirect_socket * sc = & info -> socket ;
1218+ struct smbdirect_recv_io * response ;
12151219 int i ;
1216- struct smbd_response * response ;
12171220
12181221 INIT_LIST_HEAD (& info -> reassembly_queue );
12191222 spin_lock_init (& info -> reassembly_queue_lock );
@@ -1231,7 +1234,7 @@ static int allocate_receive_buffers(struct smbd_connection *info, int num_buf)
12311234 if (!response )
12321235 goto allocate_failed ;
12331236
1234- response -> info = info ;
1237+ response -> socket = sc ;
12351238 response -> sge .length = 0 ;
12361239 list_add_tail (& response -> list , & info -> receive_queue );
12371240 info -> count_receive_queue ++ ;
@@ -1243,7 +1246,7 @@ static int allocate_receive_buffers(struct smbd_connection *info, int num_buf)
12431246 while (!list_empty (& info -> receive_queue )) {
12441247 response = list_first_entry (
12451248 & info -> receive_queue ,
1246- struct smbd_response , list );
1249+ struct smbdirect_recv_io , list );
12471250 list_del (& response -> list );
12481251 info -> count_receive_queue -- ;
12491252
@@ -1254,7 +1257,7 @@ static int allocate_receive_buffers(struct smbd_connection *info, int num_buf)
12541257
12551258static void destroy_receive_buffers (struct smbd_connection * info )
12561259{
1257- struct smbd_response * response ;
1260+ struct smbdirect_recv_io * response ;
12581261
12591262 while ((response = get_receive_buffer (info )))
12601263 mempool_free (response , info -> response_mempool );
@@ -1295,7 +1298,7 @@ void smbd_destroy(struct TCP_Server_Info *server)
12951298 struct smbd_connection * info = server -> smbd_conn ;
12961299 struct smbdirect_socket * sc ;
12971300 struct smbdirect_socket_parameters * sp ;
1298- struct smbd_response * response ;
1301+ struct smbdirect_recv_io * response ;
12991302 unsigned long flags ;
13001303
13011304 if (!info ) {
@@ -1452,17 +1455,17 @@ static int allocate_caches_and_workqueue(struct smbd_connection *info)
14521455 if (!info -> request_mempool )
14531456 goto out1 ;
14541457
1455- scnprintf (name , MAX_NAME_LEN , "smbd_response_ %p" , info );
1458+ scnprintf (name , MAX_NAME_LEN , "smbdirect_recv_io_ %p" , info );
14561459
14571460 struct kmem_cache_args response_args = {
1458- .align = __alignof__(struct smbd_response ),
1459- .useroffset = (offsetof(struct smbd_response , packet ) +
1461+ .align = __alignof__(struct smbdirect_recv_io ),
1462+ .useroffset = (offsetof(struct smbdirect_recv_io , packet ) +
14601463 sizeof (struct smbdirect_data_transfer )),
14611464 .usersize = sp -> max_recv_size - sizeof (struct smbdirect_data_transfer ),
14621465 };
14631466 info -> response_cache =
14641467 kmem_cache_create (name ,
1465- sizeof (struct smbd_response ) + sp -> max_recv_size ,
1468+ sizeof (struct smbdirect_recv_io ) + sp -> max_recv_size ,
14661469 & response_args , SLAB_HWCACHE_ALIGN );
14671470 if (!info -> response_cache )
14681471 goto out2 ;
@@ -1753,7 +1756,7 @@ struct smbd_connection *smbd_get_connection(
17531756int smbd_recv (struct smbd_connection * info , struct msghdr * msg )
17541757{
17551758 struct smbdirect_socket * sc = & info -> socket ;
1756- struct smbd_response * response ;
1759+ struct smbdirect_recv_io * response ;
17571760 struct smbdirect_data_transfer * data_transfer ;
17581761 size_t size = iov_iter_count (& msg -> msg_iter );
17591762 int to_copy , to_read , data_read , offset ;
@@ -1789,7 +1792,7 @@ int smbd_recv(struct smbd_connection *info, struct msghdr *msg)
17891792 offset = info -> first_entry_offset ;
17901793 while (data_read < size ) {
17911794 response = _get_first_reassembly (info );
1792- data_transfer = smbd_response_payload (response );
1795+ data_transfer = smbdirect_recv_io_payload (response );
17931796 data_length = le32_to_cpu (data_transfer -> data_length );
17941797 remaining_data_length =
17951798 le32_to_cpu (
0 commit comments