Skip to content

Commit 2a3f785

Browse files
namjaejeonsmfrench
authored andcommitted
ksmbd: release interim response after sending status pending response
Add missing release async id and delete interim response entry after sending status pending response. This only cause when smb2 lease is enable. Signed-off-by: Namjae Jeon <linkinjeon@kernel.org> Signed-off-by: Steve French <stfrench@microsoft.com>
1 parent 2e45092 commit 2a3f785

2 files changed

Lines changed: 5 additions & 1 deletion

File tree

fs/smb/server/ksmbd_work.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,9 @@ void ksmbd_free_work_struct(struct ksmbd_work *work)
5656
kfree(work->tr_buf);
5757
kvfree(work->request_buf);
5858
kfree(work->iov);
59+
if (!list_empty(&work->interim_entry))
60+
list_del(&work->interim_entry);
61+
5962
if (work->async_id)
6063
ksmbd_release_id(&work->conn->async_ida, work->async_id);
6164
kmem_cache_free(work_cache, work);

fs/smb/server/oplock.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -833,7 +833,8 @@ static int smb2_lease_break_noti(struct oplock_info *opinfo)
833833
interim_entry);
834834
setup_async_work(in_work, NULL, NULL);
835835
smb2_send_interim_resp(in_work, STATUS_PENDING);
836-
list_del(&in_work->interim_entry);
836+
list_del_init(&in_work->interim_entry);
837+
release_async_work(in_work);
837838
}
838839
INIT_WORK(&work->work, __smb2_lease_break_noti);
839840
ksmbd_queue_work(work);

0 commit comments

Comments
 (0)