@@ -4356,7 +4356,8 @@ init_read_bvec(struct page **pages, unsigned int npages, unsigned int data_size,
4356
4356
static int
4357
4357
handle_read_data (struct TCP_Server_Info * server , struct mid_q_entry * mid ,
4358
4358
char * buf , unsigned int buf_len , struct page * * pages ,
4359
- unsigned int npages , unsigned int page_data_size )
4359
+ unsigned int npages , unsigned int page_data_size ,
4360
+ bool is_offloaded )
4360
4361
{
4361
4362
unsigned int data_offset ;
4362
4363
unsigned int data_len ;
@@ -4378,7 +4379,8 @@ handle_read_data(struct TCP_Server_Info *server, struct mid_q_entry *mid,
4378
4379
4379
4380
if (server -> ops -> is_session_expired &&
4380
4381
server -> ops -> is_session_expired (buf )) {
4381
- cifs_reconnect (server );
4382
+ if (!is_offloaded )
4383
+ cifs_reconnect (server );
4382
4384
return -1 ;
4383
4385
}
4384
4386
@@ -4518,7 +4520,8 @@ static void smb2_decrypt_offload(struct work_struct *work)
4518
4520
mid -> decrypted = true;
4519
4521
rc = handle_read_data (dw -> server , mid , dw -> buf ,
4520
4522
dw -> server -> vals -> read_rsp_size ,
4521
- dw -> ppages , dw -> npages , dw -> len );
4523
+ dw -> ppages , dw -> npages , dw -> len ,
4524
+ true);
4522
4525
mid -> callback (mid );
4523
4526
cifs_mid_q_entry_release (mid );
4524
4527
}
@@ -4622,7 +4625,7 @@ receive_encrypted_read(struct TCP_Server_Info *server, struct mid_q_entry **mid,
4622
4625
(* mid )-> decrypted = true;
4623
4626
rc = handle_read_data (server , * mid , buf ,
4624
4627
server -> vals -> read_rsp_size ,
4625
- pages , npages , len );
4628
+ pages , npages , len , false );
4626
4629
}
4627
4630
4628
4631
free_pages :
@@ -4765,7 +4768,7 @@ smb3_handle_read_data(struct TCP_Server_Info *server, struct mid_q_entry *mid)
4765
4768
char * buf = server -> large_buf ? server -> bigbuf : server -> smallbuf ;
4766
4769
4767
4770
return handle_read_data (server , mid , buf , server -> pdu_size ,
4768
- NULL , 0 , 0 );
4771
+ NULL , 0 , 0 , false );
4769
4772
}
4770
4773
4771
4774
static int
0 commit comments