@@ -809,10 +809,12 @@ static int smb1_oplock_break_noti(struct oplock_info *opinfo)
809
809
work -> conn = conn ;
810
810
811
811
if (opinfo -> op_state == OPLOCK_ACK_WAIT ) {
812
+ ksmbd_conn_r_count_inc (conn );
812
813
INIT_WORK (& work -> work , __smb1_oplock_break_noti );
813
814
ksmbd_queue_work (work );
814
815
815
816
wait_for_break_ack (opinfo );
817
+ ksmbd_conn_r_count_dec (conn );
816
818
} else {
817
819
__smb1_oplock_break_noti (& work -> work );
818
820
if (opinfo -> level == OPLOCK_READ )
@@ -925,10 +927,12 @@ static int smb2_oplock_break_noti(struct oplock_info *opinfo)
925
927
work -> sess = opinfo -> sess ;
926
928
927
929
if (opinfo -> op_state == OPLOCK_ACK_WAIT ) {
930
+ ksmbd_conn_r_count_inc (conn );
928
931
INIT_WORK (& work -> work , __smb2_oplock_break_noti );
929
932
ksmbd_queue_work (work );
930
933
931
934
wait_for_break_ack (opinfo );
935
+ ksmbd_conn_r_count_dec (conn );
932
936
} else {
933
937
__smb2_oplock_break_noti (& work -> work );
934
938
if (opinfo -> level == SMB2_OPLOCK_LEVEL_II )
@@ -1031,9 +1035,11 @@ static int smb2_lease_break_noti(struct oplock_info *opinfo)
1031
1035
work -> sess = opinfo -> sess ;
1032
1036
1033
1037
if (opinfo -> op_state == OPLOCK_ACK_WAIT ) {
1038
+ ksmbd_conn_r_count_inc (conn );
1034
1039
INIT_WORK (& work -> work , __smb2_lease_break_noti );
1035
1040
ksmbd_queue_work (work );
1036
1041
wait_for_break_ack (opinfo );
1042
+ ksmbd_conn_r_count_dec (conn );
1037
1043
} else {
1038
1044
__smb2_lease_break_noti (& work -> work );
1039
1045
if (opinfo -> o_lease -> new_state == SMB2_LEASE_NONE_LE ) {
0 commit comments