Messages in this thread | | | Date | Fri, 7 Oct 2011 10:09:49 -0400 (EDT) | From | Alan Stern <> | Subject | Re: Re: Re: Re: BUG in kernel: Wrong Handling of USB HDD ’s in scsiglue(slave configure) and scsi/sd(sd read cache =?windows-1252?Q?type=29 |
| |
On Fri, 7 Oct 2011, Amit Sahrawat wrote:
> Trying to set the cache type as "write back" through "echo "write > back" > /sys/class/scsi_disk/<disk>/cache_type" does not work. > Few logs : > #> usb 2-1.4: new high speed USB device using ehci-sdp and address 5 > usb 2-1.4: New USB device found, idVendor=152d, idProduct=2339 > usb 2-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=5 > usb 2-1.4: Product: USB to ATA/ATAPI Bridge > usb 2-1.4: Manufacturer: JMicron > usb 2-1.4: SerialNumber: 3446184AA01C > scsi1 : usb-storage 2-1.4:1.0 > scsi 1:0:0:0: Direct-Access SAMSUNG HM501IX PQ: 0 ANSI: 2 CCS > sd 1:0:0:0: [sda] 976773168 512-byte logical blocks: (500 GB/465 GiB) > sd 1:0:0:0: [sda] Write Protect is off > sd 1:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't > support DPO or FUA > sda: > > #> echo "write back" > /sys/class/scsi_disk/1\:0\:0\:0/cache_type > sd 1:0:0:0: [sda] Sense Key : 0x5 [current] > sd 1:0:0:0: [sda] ASC=0x20 ASCQ=0x0
This is what James was talking about. When you write something to /sys/class/scsi_disk/.../cache_type, the value you specify is sent to the drive using a MODE SELECT command. However, if a USB drive doesn't report the caching type properly, it's not very likely to support the appropriate MODE SELECT command either.
What you need to do is create a variant of the cache_type sysfs attribute, one that will set or clear the WCE flag directly, without trying to communicate with the drive.
Alan Stern
| |