USB: gadget: storage: optional SCSI WRITE FUA bit
authorAndy Shevchenko <andy.shevchenko@gmail.com>
Thu, 22 Jul 2010 14:53:56 +0000 (17:53 +0300)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 10 Aug 2010 21:35:42 +0000 (14:35 -0700)
commita93917d39fc388c4761d2530af82513e2d3bf9f6
tree0e2f7bed30b16c70a2f71951adfadeab7a29a4a8
parent8156d158efa6370a8183f47327f122edbb4f2cb6
USB: gadget: storage: optional SCSI WRITE FUA bit

MS Windows mounts removable storage in "Removal optimized mode" by
default. All the writes to the media are synchronous which is achieved
by setting FUA (Force Unit Access) bit in SCSI WRITE(10,12) commands.
This prevents I/O requests aggregation in block layer dramatically
decreasing performance.

This patch brings an option to accept or ignore mentioned bit
 a) via specifying module parameter "nofua", or
 b) through sysfs entry
/sys/devices/platform/_UDC_/gadget/gadget-lunX/nofua
(_UDC_ is the name of the USB Device Controller driver)

Patch is based on the work that was done by Denis Karpov for Maemo 5
platform.

Signed-off-by: Andy Shevchenko <ext-andriy.shevchenko@nokia.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Cc: Denis Karpov <ext-denis.2.karpov@nokia.com>
Cc: Adrian Hunter <adrian.hunter@nokia.com>
Cc: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Documentation/ABI/testing/sysfs-devices-platform-_UDC_-gadget
drivers/usb/gadget/file_storage.c
drivers/usb/gadget/storage_common.c