mirror of
https://github.com/freebsd/freebsd-src
synced 2024-10-15 12:54:27 +00:00
cfiscsi_done: Free the dummy PDU earlier.
The dummy PDU needs to be freed before marking task abortion complete
as otherwise cfiscsi_session_terminate_tasks can return and destroy
the session in another thread before the PDU is freed.
Fixes: 2e8d1a5525
iscsi: Allocate a dummy PDU for the internal nexus reset task.
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D34176
This commit is contained in:
parent
c227269e2f
commit
a3d71fffa7
|
@ -3062,11 +3062,11 @@ cfiscsi_done(union ctl_io *io)
|
|||
/*
|
||||
* Implicit task termination has just completed; nothing to do.
|
||||
*/
|
||||
icl_pdu_free(request);
|
||||
cs->cs_tasks_aborted = true;
|
||||
refcount_release(&cs->cs_outstanding_ctl_pdus);
|
||||
wakeup(__DEVOLATILE(void *, &cs->cs_outstanding_ctl_pdus));
|
||||
ctl_free_io(io);
|
||||
icl_pdu_free(request);
|
||||
return;
|
||||
default:
|
||||
panic("cfiscsi_done called with wrong opcode 0x%x",
|
||||
|
|
Loading…
Reference in a new issue