ovl: add support for appending lowerdirs one by one
authorAmir Goldstein <amir73il@gmail.com>
Mon, 30 Oct 2023 18:34:42 +0000 (20:34 +0200)
committerAmir Goldstein <amir73il@gmail.com>
Mon, 30 Oct 2023 22:13:02 +0000 (00:13 +0200)
commit24e16e385f2272b1a9df51337a5c32d28a29c7ad
treebfe912131d20609891e2cd3cecfb985fe0b6252a
parent819829f0319a759e8a6ccb7e4f1113f3f9f07aa3
ovl: add support for appending lowerdirs one by one

Add new mount options lowerdir+ and datadir+ that can be used to add
layers to lower layers stack one by one.

Unlike the legacy lowerdir mount option, special characters (i.e. colons
and cammas) are not unescaped with these new mount options.

The new mount options can be repeated to compose a large stack of lower
layers, but they may not be mixed with the lagacy lowerdir mount option,
because for displaying lower layers in mountinfo, we do not want to mix
escaped with unescaped lower layers path syntax.

Similar to data-only layer rules with the lowerdir mount option, the
datadir+ option must follow at least one lowerdir+ option and the
lowerdir+ option must not follow the datadir+ option.

If the legacy lowerdir mount option follows lowerdir+ and datadir+
mount options, it overrides them.  Sepcifically, calling:

  fsconfig(FSCONFIG_SET_STRING, "lowerdir", "", 0);

can be used to reset previously setup lower layers.

Suggested-by: Miklos Szeredi <miklos@szeredi.hu>
Link: https://lore.kernel.org/r/CAJfpegt7VC94KkRtb1dfHG8+4OzwPBLYqhtc8=QFUxpFJE+=RQ@mail.gmail.com/
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Documentation/filesystems/overlayfs.rst
fs/overlayfs/params.c