ksmbd: release interim response after sending status pending response
[ Upstream commit 2a3f7857ec742e212d6cee7fbbf7b0e2ae7f5161 ] 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> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Родитель
c21d044508
Коммит
5e1f31378a
|
@ -56,6 +56,9 @@ void ksmbd_free_work_struct(struct ksmbd_work *work)
|
||||||
kfree(work->tr_buf);
|
kfree(work->tr_buf);
|
||||||
kvfree(work->request_buf);
|
kvfree(work->request_buf);
|
||||||
kfree(work->iov);
|
kfree(work->iov);
|
||||||
|
if (!list_empty(&work->interim_entry))
|
||||||
|
list_del(&work->interim_entry);
|
||||||
|
|
||||||
if (work->async_id)
|
if (work->async_id)
|
||||||
ksmbd_release_id(&work->conn->async_ida, work->async_id);
|
ksmbd_release_id(&work->conn->async_ida, work->async_id);
|
||||||
kmem_cache_free(work_cache, work);
|
kmem_cache_free(work_cache, work);
|
||||||
|
|
|
@ -833,7 +833,8 @@ static int smb2_lease_break_noti(struct oplock_info *opinfo)
|
||||||
interim_entry);
|
interim_entry);
|
||||||
setup_async_work(in_work, NULL, NULL);
|
setup_async_work(in_work, NULL, NULL);
|
||||||
smb2_send_interim_resp(in_work, STATUS_PENDING);
|
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);
|
INIT_WORK(&work->work, __smb2_lease_break_noti);
|
||||||
ksmbd_queue_work(work);
|
ksmbd_queue_work(work);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче