In preparation for adding usb9pfs support to barebox, this series adds 9PFS over Virt I/O, which is nifty for passing files to (and from, FS is writable) barebox running in Qemu.
Ahmad Fatoum (10): tftp: centralize 2 sec d_revalidate optimization to new netfs lib Port Linux __cleanup() based guard infrastructure lib: idr: implement Linux idr_alloc/_u32 API lib: add iov_iter I/O vector iterator support lib: add parser code for mount options include: add definitions for UID/GID/DEV net: add support for 9P protocol fs: add new 9P2000.l (Plan 9) File system support fs: 9p: enable 9P over Virt I/O transport in defconfigs test: add support for --fs option in QEMU Documentation/user/virtio.rst | 32 +- Makefile | 3 - arch/arm/configs/multi_v7_defconfig | 4 + arch/arm/configs/multi_v8_defconfig | 4 + arch/riscv/configs/rv64i_defconfig | 4 + arch/riscv/configs/virt32_defconfig | 4 + common/startup.c | 3 + conftest.py | 15 + drivers/firmware/arm_scmi/bus.c | 5 +- drivers/firmware/arm_scmi/driver.c | 10 +- fs/9p/Kconfig | 18 + fs/9p/Makefile | 12 + fs/9p/fid.c | 295 ++++ fs/9p/fid.h | 37 + fs/9p/v9fs.c | 373 ++++++ fs/9p/v9fs.h | 183 +++ fs/9p/v9fs_vfs.h | 74 + fs/9p/vfs_addr.c | 111 ++ fs/9p/vfs_dir.c | 172 +++ fs/9p/vfs_file.c | 67 + fs/9p/vfs_inode.c | 279 ++++ fs/9p/vfs_inode_dotl.c | 579 ++++++++ fs/9p/vfs_super.c | 243 ++++ fs/Kconfig | 6 + fs/Makefile | 2 + fs/fs.c | 9 + fs/netfs.c | 25 + fs/tftp.c | 35 +- include/linux/cleanup.h | 401 ++++++ include/linux/compiler-clang.h | 11 + include/linux/compiler_types.h | 6 + include/linux/completion.h | 3 + include/linux/fs.h | 47 + include/linux/gfp.h | 2 + include/linux/idr.h | 8 +- include/linux/kdev_t.h | 22 + include/linux/limits.h | 1 + include/linux/module.h | 1 + include/linux/mutex.h | 8 +- include/linux/netfs.h | 78 ++ include/linux/parser.h | 42 + include/linux/spinlock.h | 17 +- include/linux/stat.h | 4 + include/linux/uidgid.h | 59 + include/linux/uidgid_types.h | 15 + include/linux/uio.h | 305 +++++ include/net/9p/9p.h | 559 ++++++++ include/net/9p/client.h | 297 ++++ include/net/9p/transport.h | 73 + include/printf.h | 11 + include/uapi/linux/uio.h | 23 + include/uapi/linux/virtio_9p.h | 44 + lib/Makefile | 2 + lib/idr.c | 116 +- lib/iov_iter.c | 245 ++++ lib/parser.c | 363 +++++ net/9p/Kconfig | 32 + net/9p/Makefile | 11 + net/9p/client.c | 1932 +++++++++++++++++++++++++++ net/9p/mod.c | 180 +++ net/9p/protocol.c | 802 +++++++++++ net/9p/protocol.h | 19 + net/9p/trans_virtio.c | 426 ++++++ net/Kconfig | 2 + net/Makefile | 1 + test/self/idr.c | 5 + 66 files changed, 8715 insertions(+), 62 deletions(-) create mode 100644 fs/9p/Kconfig create mode 100644 fs/9p/Makefile create mode 100644 fs/9p/fid.c create mode 100644 fs/9p/fid.h create mode 100644 fs/9p/v9fs.c create mode 100644 fs/9p/v9fs.h create mode 100644 fs/9p/v9fs_vfs.h create mode 100644 fs/9p/vfs_addr.c create mode 100644 fs/9p/vfs_dir.c create mode 100644 fs/9p/vfs_file.c create mode 100644 fs/9p/vfs_inode.c create mode 100644 fs/9p/vfs_inode_dotl.c create mode 100644 fs/9p/vfs_super.c create mode 100644 fs/netfs.c create mode 100644 include/linux/cleanup.h create mode 100644 include/linux/kdev_t.h create mode 100644 include/linux/netfs.h create mode 100644 include/linux/parser.h create mode 100644 include/linux/uidgid.h create mode 100644 include/linux/uidgid_types.h create mode 100644 include/linux/uio.h create mode 100644 include/net/9p/9p.h create mode 100644 include/net/9p/client.h create mode 100644 include/net/9p/transport.h create mode 100644 include/uapi/linux/uio.h create mode 100644 include/uapi/linux/virtio_9p.h create mode 100644 lib/iov_iter.c create mode 100644 lib/parser.c create mode 100644 net/9p/Kconfig create mode 100644 net/9p/Makefile create mode 100644 net/9p/client.c create mode 100644 net/9p/mod.c create mode 100644 net/9p/protocol.c create mode 100644 net/9p/protocol.h create mode 100644 net/9p/trans_virtio.c -- 2.39.5