[PATCH v4 0/3] scsi: fix internal write cache issue on usb hdd.

From: Namjae Jeon
Date: Wed Jun 13 2012 - 11:27:42 EST


From: Namjae Jeon <namjae.jeon@xxxxxxxxxxx>

The numbers of USB HDDs(All USB HDD I checked) does not respond
correctly to scsi mode sense command for retrieving the write cache
page status. Even though write cache is enabled by default, due to
scsi driver assume that cache is not enabled which in turn might lead
to loss of data since data still will be in cache.
This result that all filesystems is not stable on USB HDD when the
device is unplugged abruptly, even though these are having journaling
feature. Our first trying is that scsi driver send ATA command
(ATA Pass through, #58) to USB HDD after failure from normal routine to
know write cache enable.
We have known it is dangerous after testing several USB HDD. some of
HDD is stalled by this command(A-DATA HDD). So we tried to make the
patch James's suggestion(usb quirk) on version 2 that add product ID
and verdor ID of USB HDD to USB quirk list after checking write cache.
All filesystem will be stable on USB HDD registered in quirk list.
And it will be updated continuously.

scsi: set to WCE if usb cache quirk is present.
usb: storage: add support for write cache quirk on usb hdd.
usb: storage: update usb devices for write cache quirk in quirk.

drivers/scsi/sd.c | 9 +++++++--
include/scsi/scsi_device.h | 1 +
drivers/usb/storage/scsiglue.c | 5 +++++
drivers/usb/storage/usb.c | 5 ++++-
include/linux/usb_usual.h | 4 +++-
drivers/usb/storage/unusual_devs.h | 24 ++++++++++++++++++++++++
Documentation/kernel-parameters.txt | 2 ++
7 files changed, 46 insertions(+), 4 deletions(-)
--
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/