diff --git a/sys/dev/cxgbe/cxgbei/icl_cxgbei.c b/sys/dev/cxgbe/cxgbei/icl_cxgbei.c --- a/sys/dev/cxgbe/cxgbei/icl_cxgbei.c +++ b/sys/dev/cxgbe/cxgbei/icl_cxgbei.c @@ -1153,7 +1153,8 @@ { struct ctl_scsiio *ctsio = arg; - if (ctsio != NULL && ctsio->kern_data_len == ctsio->ext_data_filled) { + if (ctsio != NULL && (ctsio->kern_data_len == ctsio->ext_data_filled || + ic->ic_disconnecting)) { struct ppod_reservation *prsv; prsv = io_to_ppod_reservation(ctsio);