diff options
author | mav <mav@FreeBSD.org> | 2015-01-30 09:04:20 +0000 |
---|---|---|
committer | mav <mav@FreeBSD.org> | 2015-01-30 09:04:20 +0000 |
commit | aba44db36efae3127a94fb0a0d3dad03fdd1d29c (patch) | |
tree | 6f3296d00f6faed9d8869362998ebee2fb8e8989 | |
parent | e788b18c4ea45e5cde1a889b6afe1aedc0ea4dbd (diff) | |
download | FreeBSD-src-aba44db36efae3127a94fb0a0d3dad03fdd1d29c.zip FreeBSD-src-aba44db36efae3127a94fb0a0d3dad03fdd1d29c.tar.gz |
MFC r277529: Don't count requests with status sent as overlapping.
While those requests are still in target OOA queue, for initiator they are
already completed, so tags can be reused.
-rw-r--r-- | sys/cam/ctl/ctl.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/cam/ctl/ctl.c b/sys/cam/ctl/ctl.c index ecebf15..e5f1cbf 100644 --- a/sys/cam/ctl/ctl.c +++ b/sys/cam/ctl/ctl.c @@ -10828,7 +10828,8 @@ ctl_check_for_blockage(struct ctl_lun *lun, union ctl_io *pending_io, ooa_io->io_hdr.nexus.targ_port) && (pending_io->io_hdr.nexus.initid.id == ooa_io->io_hdr.nexus.initid.id)) - && ((ooa_io->io_hdr.flags & CTL_FLAG_ABORT) == 0)) + && ((ooa_io->io_hdr.flags & (CTL_FLAG_ABORT | + CTL_FLAG_STATUS_SENT)) == 0)) return (CTL_ACTION_OVERLAP); /* @@ -10849,7 +10850,8 @@ ctl_check_for_blockage(struct ctl_lun *lun, union ctl_io *pending_io, ooa_io->io_hdr.nexus.targ_port) && (pending_io->io_hdr.nexus.initid.id == ooa_io->io_hdr.nexus.initid.id)) - && ((ooa_io->io_hdr.flags & CTL_FLAG_ABORT) == 0)) + && ((ooa_io->io_hdr.flags & (CTL_FLAG_ABORT | + CTL_FLAG_STATUS_SENT)) == 0)) return (CTL_ACTION_OVERLAP_TAG); /* |