usb: gadget: f_mass_storage: forced_eject attribute
authorMaxim Devaev <mdevaev@gmail.com>
Mon, 11 Jul 2022 10:29:57 +0000 (13:29 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 14 Jul 2022 14:06:42 +0000 (16:06 +0200)
commit421c8d9a20da92deed2dac227e7ebdee7eb3e88f
tree9dd7b02019b4500836d798ac73042c36735cfe6f
parent8097cf2fb3b2205257f1c76f4808e3398d66b6d9
usb: gadget: f_mass_storage: forced_eject attribute

It allows to reset prevent_medium_removal flag and "eject" the image.
This can be useful to free the drive from a hunging host or if the host
continues to use the drive even after unmounting (Linux does this).
It's also a bit like using an unfolded paperclip on an optical drive.

Previously, the undocumented method of sending SIGUSR1 to a special
"file-storage" kernel thread could be used for these purposes,
but when using multiple storages there was no way to distinguish
one from the other, so we had to send a signal to everyone.

Reviewed-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Maxim Devaev <mdevaev@gmail.com>
Link: https://lore.kernel.org/r/20220711102956.19642-1-mdevaev@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Documentation/ABI/testing/configfs-usb-gadget-mass-storage
Documentation/usb/gadget-testing.rst
Documentation/usb/mass-storage.rst
drivers/usb/gadget/function/f_mass_storage.c
drivers/usb/gadget/function/storage_common.c
drivers/usb/gadget/function/storage_common.h