当HCB的超时期满时,请求就应当被中止,就像处理XPT_ABORT请求 一样。唯一区别在于被中止的请求的返回状态应当为CAM_CMD_TIMEOUT 而不是CAM_REQ_ABORTED(这就是为什么中止的实现最好由函数来完成)。 但还有一个可能的问题:如果中止请求自己出了麻烦怎么办?这种情况下 应当复位SCSI总线,就像处理XPT_RESET_BUS请求一样(并且将其实现为 函数,从两个地方调用的想法也适用于这儿)。而且如果设备复位请求出了 问题,我们应当复位整个SCSI总线。因此最终超时函数看起来像下面样子:
当我们中止一个请求时,同一目标/LUN的所有其他断开连接的请求 也会被中止。因此出现了一个问题,我们应当返回它们的状态 CAM_REQ_ABORTED还是CAM_CMD_TIMEOUT?当前的驱动程序使用 CAM_CMD_TIMEOUT。这看起来符合逻辑,因为如果一个请求超时,则可能 设备出现了某些的确很糟的事情,因此如果它们没有被扰乱则它们自己 应当超时。
本文档和其它文档可从这里下载: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
如果对于FreeBSD有问题,请先阅读
文档,如不能解决再联系
<questions@FreeBSD.org>.
关于本文档的问题请发信联系
<doc@FreeBSD.org>.