Re: [PATCH] Don't add scsi_device for devices that return PQ=1, PDT=0x1f

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Christoph Hellwig wrote:
On Thu, Jul 27, 2006 at 04:30:36PM -0400, Dave Wysochanski wrote:
 > Some targets may return PQ=1 and PDT=0x1f to indicate no LUN is mapped
 > (Netapp targets do this).  This seems like a valid way to indicate no
 > LUN mapped according to SPC-3.
 >
 > However, the current scsi_probe_and_add_lun() code adds a scsi_device
 > for targets that return PQ=1 and PDT=0x1f.  This causes LUNs of type
 > "UNKNOWN" to show up in /proc/scsi/scsi when no LUNs are mapped.
 > In addition, subsequent rescans fail to recognize LUNs that may be
 > added on the target, unless preceded by a write to the delete attribute
 > of the "UNKNOWN" LUN.
 >
 > This patch addresses this problem by skipping over the scsi_add_lun()
 > when PQ=1,PDT=0x1f is encountered, and just returns
 > SCSI_SCAN_TARGET_PRESENT.
 >
 > If there are objections to this patch, I can add a BLIST flag and entry
 > for Netapp targets but would like to avoid that if possible, since it
 > seems like the current code might be closer to SPC-3 with this patch.

If you look at scsi_probe_and_add_lun in current mainline we already
have a check for PDT=0x1f, keyed of a blacklist flag in the scsi target.
The comment above it says it's for USB UFI.  It's missing the PQ=1
check, though.  Can you reassure with the USB storage people that USB
UFI indeed sets that periphal qualifier aswell (I'd guess so as IIRC
that standard references SPC).  If that's the case replace that check
with your version and remove the target flag.

Yeah, I saw that.  If you look at that patch description from Alan, he
states the PQ=0 for these devices:
http://marc.theaimsgroup.com/?l=linux-scsi&m=113951679626087&w=2

Unfortunately USB UFI 1.0 spec has "reserved" where the PQ bits normally are,
so maybe that's why there's only a check for PDT=0x1f?  Alan or someone
from the usb-storage list, can you confirm this is correct (PQ really
"reserved" is 0 for the USB UFI devices)?  I thought I had a USB floppy
lying around but no luck.

Also, it does not look like pdt_1f_for_no_lun flag Alan added is used.
Alan do you intend on submitting the patch to the USB slave_alloc() function
as you mentioned?

I'm not sure Alan's pdt_1f_for_no_lun flag should be used in my case,
since I would want to set it based on vid/pid - most appropriate in
scsi_get_device_flags() - and he wanted to set it in slave_alloc().
Maybe setting it in 2 different places for different devices is ok
though - your call.


Also I'd suggest using a comment similar to the one in your patch to
describe it, but mention USB UFI and Netapp targets as real world
examples for this behaviour aswell.

Sure.
-
: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux