usb: gadget: mass_storage: fail fsg_store_file() early if colud not open file
authorMichal Nazarewicz <mina86@mina86.com>
Mon, 18 Jun 2012 12:37:20 +0000 (14:37 +0200)
committerFelipe Balbi <balbi@ti.com>
Fri, 22 Jun 2012 10:19:37 +0000 (13:19 +0300)
commitd6e16a89578fcc8834be634c85c5c5ddc2d13229
tree0013611c5f58bf8b466ec32a315d7aef292a72a3
parentf87cabf4d56e1fc5d08434df9d54ef3450a756f0
usb: gadget: mass_storage: fail fsg_store_file() early if colud not open file

Currently, when a new value is stored to the “file” sysfs entry,
fsg_store_file() will release existing backing file and only then attempt to
open a new one.  If that fails, no new backing file is open.

This commit changes the fsg_lun_open() so that it closes existing backing file
only after the new backing file has been successfully opened.  With that
change, fsg_store_file() may use it to perform an atomic open operation with
guarantee that logical unit will either point to the new backing file or still
to the old one.

Signed-off-by: Michal Nazarewicz <mina86@mina86.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu
Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/gadget/storage_common.c