Commit 2a3f7857 authored by Namjae Jeon's avatar Namjae Jeon Committed by Steve French
Browse files

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: default avatarNamjae Jeon <linkinjeon@kernel.org>
Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
parent 2e450920
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -56,6 +56,9 @@ void ksmbd_free_work_struct(struct ksmbd_work *work)
	kfree(work->tr_buf);
	kvfree(work->request_buf);
	kfree(work->iov);
	if (!list_empty(&work->interim_entry))
		list_del(&work->interim_entry);

	if (work->async_id)
		ksmbd_release_id(&work->conn->async_ida, work->async_id);
	kmem_cache_free(work_cache, work);
+2 −1
Original line number Diff line number Diff line
@@ -833,7 +833,8 @@ static int smb2_lease_break_noti(struct oplock_info *opinfo)
					     interim_entry);
			setup_async_work(in_work, NULL, NULL);
			smb2_send_interim_resp(in_work, STATUS_PENDING);
			list_del(&in_work->interim_entry);
			list_del_init(&in_work->interim_entry);
			release_async_work(in_work);
		}
		INIT_WORK(&work->work, __smb2_lease_break_noti);
		ksmbd_queue_work(work);