Ignore this series. There is no difference to v6 here. I will send v8 in a sec. On Mon, Jul 22, 2024 at 12:08:16AM +0200, Michael Grzeschik wrote: >This series is adding support to mount usb hostside exported 9pfs >filesystems via the usb gadget interface. It also includes a simple tool >(p9_fwd.py) to translate an tcp 9pfs transport and reuse it via the usb >interface. > > +--------------------------+ | +--------------------------+ > | 9PFS mounting client | | | 9PFS exporting server | > SW | | | | | > | (this:trans_usbg) | | |(e.g. diod or nfs-ganesha)| > +-------------^------------+ | +-------------^------------+ > | | | > | | +------v------+ > | | | p9_fwd.py | > | | +------^------+ > | | | >------------------|------------------------------------|------------- > | | | > +-------------v------------+ | +-------------v------------+ > | | | | | > HW | USB Device Controller <---------> USB Host Controller | > | | | | | > +--------------------------+ | +--------------------------+ > >The USB host exports a filesystem, while the gadget on the USB device >side makes it mountable. > >Diod (9pfs server) and the forwarder are on the development host, where >the root filesystem is actually stored. The gadget is initialized during >boot (or later) on the embedded board. Then the forwarder will find it >on the USB bus and start forwarding requests. > >In this case the 9p requests come from the device and are handled by the >host. The reason is that USB device ports are normally not available on >PCs, so a connection in the other direction would not work. > >One use-case is to use it as an alternative to NFS root booting during >the development of embedded Linux devices. > >Signed-off-by: Michael Grzeschik >--- >Changes in v7: >- added back the req_lock spinlock >- Link to v6: https://lore.kernel.org/r/20240116-ml-topic-u9p-v6-0-695977d76dff@pengutronix.de > >Changes in v6: >- fixed the python script not to have path set by default >- improved the lock init >- fixed usb9pfs status change to connected >- Link to v5: https://lore.kernel.org/r/20240116-ml-topic-u9p-v5-0-5ed0abd53ef5@pengutronix.de > >Changes in v5: >- fixed lockup in mount -> remount -> monut scenario >- improved p9_fwd transport script with more options >- Link to v4: https://lore.kernel.org/r/20240116-ml-topic-u9p-v4-0-722ed28b0ade@pengutronix.de > >Changes in v4: >- reworked the naming scheme to be set by the configfs instance >- added conn_cancel function to properly stop the transfers >- ensured that umount -f will work even when the host side has crahed >- added all the review feedback from Andrzej Pietrasiewicz >- Link to v3: https://lore.kernel.org/r/20240116-ml-topic-u9p-v3-0-c62a36eccda1@pengutronix.de > >Changes in v3: >- dropped patch "usb: gadget: legacy: add 9pfs multi gadget" as discussed with gregkh >- Link to v2: https://lore.kernel.org/r/20240116-ml-topic-u9p-v2-0-b46cbf592962@pengutronix.de > >Changes in v2: >- improved the commit messages >- introduced an patch to move the header u_f.h to include/linux/usb to compile usb gadget functions treewide >- moved usbg gadget function to net/9p/ >- adderessed several comments in function driver, like the cleanup path and kbuild errors >- improved the documentation in Documentation/filesystems/9p.rst >- Link to v1: https://lore.kernel.org/r/20240116-ml-topic-u9p-v1-0-ad8c306f9a4e@pengutronix.de > >--- >Michael Grzeschik (3): > usb: gadget: function: move u_f.h to include/linux/usb/func_utils.h > net/9p/usbg: Add new usb gadget function transport > tools: usb: p9_fwd: add usb gadget packet forwarder script > > Documentation/filesystems/9p.rst | 58 +- > drivers/usb/gadget/configfs.c | 2 +- > drivers/usb/gadget/function/f_fs.c | 2 +- > drivers/usb/gadget/function/f_hid.c | 2 +- > drivers/usb/gadget/function/f_loopback.c | 2 +- > drivers/usb/gadget/function/f_midi.c | 2 +- > drivers/usb/gadget/function/f_midi2.c | 2 +- > drivers/usb/gadget/function/f_sourcesink.c | 2 +- > drivers/usb/gadget/u_f.c | 2 +- > .../gadget/u_f.h => include/linux/usb/func_utils.h | 2 +- > net/9p/Kconfig | 6 + > net/9p/Makefile | 4 + > net/9p/trans_usbg.c | 985 +++++++++++++++++++++ > tools/usb/p9_fwd.py | 243 +++++ > 14 files changed, 1304 insertions(+), 10 deletions(-) >--- >base-commit: 2c9b3512402ed192d1f43f4531fb5da947e72bd0 >change-id: 20240116-ml-topic-u9p-895274530eb1 > >Best regards, >-- >Michael Grzeschik > > -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |