On Mon, Oct 14, 2024 at 11:41 AM Christian Brauner <brauner@xxxxxxxxxx> wrote: > > Hey, > > Currently overlayfs only allows specifying layers through path names. > This is inconvenient for users such as systemd that want to assemble an > overlayfs mount purely based on file descriptors. > > When porting overlayfs to the new mount api I already mentioned this. > This enables user to specify both: > > fsconfig(fd_overlay, FSCONFIG_SET_FD, "upperdir+", NULL, fd_upper); > fsconfig(fd_overlay, FSCONFIG_SET_FD, "workdir+", NULL, fd_work); > fsconfig(fd_overlay, FSCONFIG_SET_FD, "lowerdir+", NULL, fd_lower1); > fsconfig(fd_overlay, FSCONFIG_SET_FD, "lowerdir+", NULL, fd_lower2); > > in addition to: > > fsconfig(fd_overlay, FSCONFIG_SET_STRING, "upperdir+", "/upper", 0); > fsconfig(fd_overlay, FSCONFIG_SET_STRING, "workdir+", "/work", 0); > fsconfig(fd_overlay, FSCONFIG_SET_STRING, "lowerdir+", "/lower1", 0); > fsconfig(fd_overlay, FSCONFIG_SET_STRING, "lowerdir+", "/lower2", 0); > > The selftest contains an example for this. > > Signed-off-by: Christian Brauner <brauner@xxxxxxxxxx> For the series: Reviewed-by: Amir Goldstein <amir73il@xxxxxxxxx> Let me know if you want me to pick those up through the ovl tree. I don't expect any merge conflicts with other pending ovl patches. Thanks, Amir. > --- > Changes in v3: > - Add documentation into overlayfs.rst. > - Rename new mount api parsing helper. > - Change cleanup scope in helper. > - Link to v2: https://lore.kernel.org/r/20241011-work-overlayfs-v2-0-1b43328c5a31@xxxxxxxxxx > > Changes in v2: > - Alias fd and path based mount options. > - Link to v1: https://lore.kernel.org/r/20241011-work-overlayfs-v1-0-e34243841279@xxxxxxxxxx > > --- > Christian Brauner (5): > fs: add helper to use mount option as path or fd > ovl: specify layers via file descriptors > Documentation,ovl: document new file descriptor based layers > selftests: use shared header > selftests: add overlayfs fd mounting selftests > > Documentation/filesystems/overlayfs.rst | 17 +++ > fs/fs_parser.c | 20 +++ > fs/overlayfs/params.c | 116 ++++++++++++---- > include/linux/fs_parser.h | 5 +- > .../selftests/filesystems/overlayfs/.gitignore | 1 + > .../selftests/filesystems/overlayfs/Makefile | 2 +- > .../selftests/filesystems/overlayfs/dev_in_maps.c | 27 +--- > .../filesystems/overlayfs/set_layers_via_fds.c | 152 +++++++++++++++++++++ > .../selftests/filesystems/overlayfs/wrappers.h | 47 +++++++ > 9 files changed, 334 insertions(+), 53 deletions(-) > --- > base-commit: 8cf0b93919e13d1e8d4466eb4080a4c4d9d66d7b > change-id: 20241011-work-overlayfs-dbcfa9223e87 >