summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Lockwood <lockwood@android.com>2010-07-29 14:42:24 -0400
committerDan Willemsen <dwillemsen@nvidia.com>2011-11-30 21:38:19 -0800
commit72f33d60c42289ebe2b0f7a7e1f6d5963cd9fbdf (patch)
tree1e6a6af6cde3364c460ad34db91acad8985bca3f
parent84084cb6dd0e3d6e5f1c19054e27e810d3ce7ad6 (diff)
USB: g_mass_storage: Always allow disabling mass storage by writing to lun file
For android builds we disable the check for curlun->prevent_medium_removal. Instead we let the framework manage unmounting policy, as we sometimes need to unmount after the media has been removed. This also helps support hosts that do not inform the device when the media has been unmounted. Signed-off-by: Mike Lockwood <lockwood@android.com>
-rw-r--r--drivers/usb/gadget/storage_common.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/usb/gadget/storage_common.c b/drivers/usb/gadget/storage_common.c
index d3dd227a2bfc..cdd407a252d1 100644
--- a/drivers/usb/gadget/storage_common.c
+++ b/drivers/usb/gadget/storage_common.c
@@ -763,10 +763,16 @@ static ssize_t fsg_store_file(struct device *dev, struct device_attribute *attr,
struct rw_semaphore *filesem = dev_get_drvdata(dev);
int rc = 0;
+
+#ifndef CONFIG_USB_ANDROID_MASS_STORAGE
+ /* disabled in android because we need to allow closing the backing file
+ * if the media was removed
+ */
if (curlun->prevent_medium_removal && fsg_lun_is_open(curlun)) {
LDBG(curlun, "eject attempt prevented\n");
return -EBUSY; /* "Door is locked" */
}
+#endif
/* Remove a trailing newline */
if (count > 0 && buf[count-1] == '\n')