aboutsummaryrefslogtreecommitdiff
path: root/sys/cam/ctl/ctl.c
diff options
context:
space:
mode:
authorAlexander Motin <mav@FreeBSD.org>2014-09-22 10:05:36 +0000
committerAlexander Motin <mav@FreeBSD.org>2014-09-22 10:05:36 +0000
commit9a9fbc3dbd011d2a82ffbf91c4e03cd807456237 (patch)
treea9c04b4ba3ab987fd7ae423d77530c3e23d35204 /sys/cam/ctl/ctl.c
parent1ed3631a02ef1d3ab8375f924a14f310d983aa7b (diff)
downloadsrc-9a9fbc3dbd011d2a82ffbf91c4e03cd807456237.tar.gz
src-9a9fbc3dbd011d2a82ffbf91c4e03cd807456237.zip
Don't try to continue aborted commands if status was not set.
Notes
Notes: svn path=/head/; revision=271951
Diffstat (limited to 'sys/cam/ctl/ctl.c')
-rw-r--r--sys/cam/ctl/ctl.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/cam/ctl/ctl.c b/sys/cam/ctl/ctl.c
index 42b7ff8f433b..37e033915536 100644
--- a/sys/cam/ctl/ctl.c
+++ b/sys/cam/ctl/ctl.c
@@ -5279,9 +5279,10 @@ ctl_config_write_done(union ctl_io *io)
* If there is an error, though, we don't want to keep processing.
* Instead, just send status back to the initiator.
*/
- if ((io->io_hdr.flags & CTL_FLAG_IO_CONT)
- && (((io->io_hdr.status & CTL_STATUS_MASK) == CTL_STATUS_NONE)
- || ((io->io_hdr.status & CTL_STATUS_MASK) == CTL_SUCCESS))) {
+ if ((io->io_hdr.flags & CTL_FLAG_IO_CONT) &&
+ (io->io_hdr.flags & CTL_FLAG_ABORT) == 0 &&
+ ((io->io_hdr.status & CTL_STATUS_MASK) == CTL_STATUS_NONE ||
+ (io->io_hdr.status & CTL_STATUS_MASK) == CTL_SUCCESS)) {
io->scsiio.io_cont(io);
return;
}