Mercurial > illumos > illumos-gate
changeset 14134:720a35f9c957
3994 uscsi_timeout of 0 sent to ses target driver can hang processes in biowait with a cmd stuck in HBA.
Reviewed by: Dan McDonald <danmcd@nexenta.com>
Reviewed by: Jason King <jason.brian.king@gmail.com>
Approved by: Richard Lowe <richlowe@richlowe.net>
author | Kevin Crowe <kevin.crowe@nexenta.com> |
---|---|
date | Wed, 07 Aug 2013 13:34:06 -0400 |
parents | 4caa3904e52a |
children | 62094c23dbe2 |
files | usr/src/uts/common/io/scsi/targets/ses.c |
diffstat | 1 files changed, 5 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/usr/src/uts/common/io/scsi/targets/ses.c Tue Aug 13 07:32:14 2013 +0200 +++ b/usr/src/uts/common/io/scsi/targets/ses.c Wed Aug 07 13:34:06 2013 -0400 @@ -24,6 +24,7 @@ * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. * Copyright (c) 2011 Bayard G. Bell. All rights reserved. + * Copyright 2013 Nexenta Systems, Inc. All rights reserved. */ #include <sys/modctl.h> @@ -1103,7 +1104,10 @@ if (pkt == (struct scsi_pkt *)NULL) return; bcopy(scmd->uscsi_cdb, pkt->pkt_cdbp, (size_t)scmd->uscsi_cdblen); - pkt->pkt_time = scmd->uscsi_timeout; + + /* Set an upper bound timeout of ses_io_time if zero is passed in */ + pkt->pkt_time = (scmd->uscsi_timeout == 0) ? + ses_io_time : scmd->uscsi_timeout; pkt->pkt_comp = ses_callback; pkt->pkt_private = (opaque_t)ssc;