From d6794b70678746a9e0591485aa5a5e6fafa1ff6e Mon Sep 17 00:00:00 2001 From: Alexander Motin Date: Wed, 3 Apr 2013 11:30:18 +0000 Subject: [PATCH] Add xpt_release_ccb()'s missed at r248872. That made `shutdown -p` stuck on controller with small number of queue slots and several disks connected. --- sys/cam/ata/ata_da.c | 2 ++ sys/cam/scsi/scsi_da.c | 1 + 2 files changed, 3 insertions(+) diff --git a/sys/cam/ata/ata_da.c b/sys/cam/ata/ata_da.c index 14571333a2c..0e4e543149d 100644 --- a/sys/cam/ata/ata_da.c +++ b/sys/cam/ata/ata_da.c @@ -1886,6 +1886,7 @@ adaflush(void) softc->disk->d_devstat); if (error != 0) xpt_print(periph->path, "Synchronize cache failed\n"); + xpt_release_ccb(ccb); cam_periph_unlock(periph); } } @@ -1931,6 +1932,7 @@ adaspindown(uint8_t cmd, int flags) softc->disk->d_devstat); if (error != 0) xpt_print(periph->path, "Spin-down disk failed\n"); + xpt_release_ccb(ccb); cam_periph_unlock(periph); } } diff --git a/sys/cam/scsi/scsi_da.c b/sys/cam/scsi/scsi_da.c index a7aaab9e8db..2aa404797b5 100644 --- a/sys/cam/scsi/scsi_da.c +++ b/sys/cam/scsi/scsi_da.c @@ -2897,6 +2897,7 @@ dashutdown(void * arg, int howto) softc->disk->d_devstat); if (error != 0) xpt_print(periph->path, "Synchronize cache failed\n"); + xpt_release_ccb(ccb); cam_periph_unlock(periph); } } -- 2.45.0