Re: [PATCH] Snoop SET FEATURES - WRITE CACHE ENABLE/DISABLE command

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

 



Jeff Garzik wrote:
Tejun Heo wrote:
Jeff Garzik wrote:
4) Using [__]scsi_add_device() is a regression from using scsi_scan_target()

I think it's taken from the hotplug patch store-attached-SCSI-device[1]. Using [__]scsi_add_device() seems to be the only way to reliably obtain the attached sdev.


We want to continue to use scsi_scan_target(), because that's the preferred model. In SCSI-land, the target is what receives RPC calls (ATA commands, for us), which are then dispatched internally to one of $N logical units (LU) according to the logical unit number (LUN).

In libata, of course, there is only one logical unit attached to the target, LUN 0.

Regardless, using [__]scsi_add_device() is a regression, because libata handles the transport layer completely -- and importantly -- handles all addressing. scsi_add_device() is specifically for H/C/I/L, i.e. SPI (parallel SCSI) addressing.

Eventually SCSI will reach a point where HCIL is not the only addressing method. SAS disks, for example, are addressed via a LUN's WWN. SCSI fibre channel addresses LUNs via WWN as well. Once SCSI core does not exclusively use HCIL addressing, libata will reap the benefits of using the proper scsi_target model.

I fully agree with everything you said, but we're faced with a real problem here. libata needs to know the current attached sdev for hotplug and rescan; however, there's no way to determine the current sdev after it's already added.

scsi_device_lookup*() functions don't discriminate between dead and live devices and ends up operating on the first device it stumbles upon (the dead one if it's still hanging around). Storing dev->sdev was a way to get around the limitation. If a SCSI function which looks up the live device is implemented, we don't need to store dev->sdev at all. IMHO, the current implementation can be left as it is until such interface is implemented.

Thanks.

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

[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux