Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 5 Mar 2012 17:17:31 -0700
From:      "Kenneth D. Merry" <ken@freebsd.org>
To:        Chuck Tuffli <chuck@tuffli.net>
Cc:        freebsd-scsi <freebsd-scsi@freebsd.org>
Subject:   Re: [patch] CTL should check condition INQUIRY with invalid LUN
Message-ID:  <20120306001731.GA38229@nargothrond.kdm.org>
In-Reply-To: <CAM0tzX1=OrfYK3za9s5xkiUDmnO=maHPbhmyv0k50y=6-WTT9w@mail.gmail.com>
References:  <CAM0tzX1=OrfYK3za9s5xkiUDmnO=maHPbhmyv0k50y=6-WTT9w@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Mar 05, 2012 at 14:46:52 -0800, Chuck Tuffli wrote:
> Currently, the CTL responds to INQUIRY commands targeted at invalid
> LUNs by returning valid data with the peripheral qualifier set to LU
> OFFLINE. This patch instead returns a check condition with LU NOT
> READY.
> 
> Linux initiators see the LU OFFLINE and start creating SG devices, but
> are not able to finish. The offline also causes them to keep probing
> LUNs.

Linux used to behave properly.  What version are you testing with?

Returning a check condition is not correct according to the spec.  This is
from SPC-4 (r31):

"In response to an INQUIRY command received by an incorrect logical unit,
the SCSI target device shall return the INQUIRY data with the peripheral
qualifier set to the value defined in 6.4.2. The INQUIRY command shall
return CHECK CONDITION status only when the device server is unable to
return the requested INQUIRY data."

Since CTL can support a LUN at the requested address, but there isn't one
there, it returns OFFLINE status.

They should be issuing a REPORT LUNs and then probe the LUNs that are
returned...

Ken
-- 
Kenneth Merry
ken@FreeBSD.ORG



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120306001731.GA38229>