* [PATCH v2 0/2] Fixes to overlayfs documentation @ 2023-12-13 12:34 Amir Goldstein 2023-12-13 12:34 ` [PATCH v2 1/2] overlayfs.rst: use consistent feature names Amir Goldstein 2023-12-13 12:34 ` [PATCH v2 2/2] overlayfs.rst: fix ReST formatting Amir Goldstein 0 siblings, 2 replies; 9+ messages in thread From: Amir Goldstein @ 2023-12-13 12:34 UTC (permalink / raw) To: Miklos Szeredi; +Cc: Christian Brauner, Bagas Sanjaya, linux-unionfs, linux-doc Hi all, Some minor fixes to overlayfs.rst that I plan to queue for next merge window. Some of the fixes are workarounds for oddities of github when parsing ReST format [1]. Amir. [1] https://github.com/torvalds/linux/blob/master/Documentation/filesystems/overlayfs.rst#permission-model Amir Goldstein (2): overlayfs.rst: use consistent feature names overlayfs.rst: fix ReST formatting Documentation/filesystems/overlayfs.rst | 90 +++++++++++++------------ 1 file changed, 47 insertions(+), 43 deletions(-) -- 2.34.1 ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v2 1/2] overlayfs.rst: use consistent feature names 2023-12-13 12:34 [PATCH v2 0/2] Fixes to overlayfs documentation Amir Goldstein @ 2023-12-13 12:34 ` Amir Goldstein 2023-12-14 4:52 ` Bagas Sanjaya 2023-12-13 12:34 ` [PATCH v2 2/2] overlayfs.rst: fix ReST formatting Amir Goldstein 1 sibling, 1 reply; 9+ messages in thread From: Amir Goldstein @ 2023-12-13 12:34 UTC (permalink / raw) To: Miklos Szeredi; +Cc: Christian Brauner, Bagas Sanjaya, linux-unionfs, linux-doc Use the feature names "metacopy" and "index" consistently throughout the document. Covert the numbered list of features "redirect_dir", "index", "xino" to section headings, so that those features could be referenced in the document by their name. Signed-off-by: Amir Goldstein <amir73il@gmail.com> --- Documentation/filesystems/overlayfs.rst | 27 ++++++++++++++----------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/Documentation/filesystems/overlayfs.rst b/Documentation/filesystems/overlayfs.rst index 0407f361f32a..926396fdc5eb 100644 --- a/Documentation/filesystems/overlayfs.rst +++ b/Documentation/filesystems/overlayfs.rst @@ -39,7 +39,7 @@ objects in the original filesystem. On 64bit systems, even if all overlay layers are not on the same underlying filesystem, the same compliant behavior could be achieved with the "xino" feature. The "xino" feature composes a unique object -identifier from the real object st_ino and an underlying fsid index. +identifier from the real object st_ino and an underlying fsid number. The "xino" feature uses the high inode number bits for fsid, because the underlying filesystems rarely use the high inode number bits. In case the underlying inode number does overflow into the high xino bits, overlay @@ -356,7 +356,7 @@ as an octal characters (\072) when displayed in /proc/self/mountinfo. Metadata only copy up --------------------- -When metadata only copy up feature is enabled, overlayfs will only copy +When the "metacopy" feature is enabled, overlayfs will only copy up metadata (as opposed to whole file), when a metadata specific operation like chown/chmod is performed. Full file will be copied up later when file is opened for WRITE operation. @@ -492,27 +492,27 @@ though it will not result in a crash or deadlock. Mounting an overlay using an upper layer path, where the upper layer path was previously used by another mounted overlay in combination with a -different lower layer path, is allowed, unless the "inodes index" feature -or "metadata only copy up" feature is enabled. +different lower layer path, is allowed, unless the "index" or "metacopy" +features are enabled. -With the "inodes index" feature, on the first time mount, an NFS file +With the "index" feature, on the first time mount, an NFS file handle of the lower layer root directory, along with the UUID of the lower filesystem, are encoded and stored in the "trusted.overlay.origin" extended attribute on the upper layer root directory. On subsequent mount attempts, the lower root directory file handle and lower filesystem UUID are compared to the stored origin in upper root directory. On failure to verify the lower root origin, mount will fail with ESTALE. An overlayfs mount with -"inodes index" enabled will fail with EOPNOTSUPP if the lower filesystem +"index" enabled will fail with EOPNOTSUPP if the lower filesystem does not support NFS export, lower filesystem does not have a valid UUID or if the upper filesystem does not support extended attributes. -For "metadata only copy up" feature there is no verification mechanism at +For the "metacopy" feature, there is no verification mechanism at mount time. So if same upper is mounted with different set of lower, mount probably will succeed but expect the unexpected later on. So don't do it. It is quite a common practice to copy overlay layers to a different directory tree on the same or different underlying filesystem, and even -to a different machine. With the "inodes index" feature, trying to mount +to a different machine. With the "index" feature, trying to mount the copied layers will fail the verification of the lower root file handle. Nesting overlayfs mounts @@ -560,7 +560,8 @@ file for write or truncating the file will not be denied with ETXTBSY. The following options allow overlayfs to act more like a standards compliant filesystem: -1) "redirect_dir" +redirect_dir +```````````` Enabled with the mount option or module option: "redirect_dir=on" or with the kernel config option CONFIG_OVERLAY_FS_REDIRECT_DIR=y. @@ -568,7 +569,8 @@ the kernel config option CONFIG_OVERLAY_FS_REDIRECT_DIR=y. If this feature is disabled, then rename(2) on a lower or merged directory will fail with EXDEV ("Invalid cross-device link"). -2) "inode index" +index +````` Enabled with the mount option or module option "index=on" or with the kernel config option CONFIG_OVERLAY_FS_INDEX=y. @@ -577,7 +579,8 @@ If this feature is disabled and a file with multiple hard links is copied up, then this will "break" the link. Changes will not be propagated to other names referring to the same inode. -3) "xino" +xino +```` Enabled with the mount option "xino=auto" or "xino=on", with the module option "xino_auto=on" or with the kernel config option @@ -604,7 +607,7 @@ a crash or deadlock. Offline changes, when the overlay is not mounted, are allowed to the upper tree. Offline changes to the lower tree are only allowed if the -"metadata only copy up", "inode index", "xino" and "redirect_dir" features +"metacopy", "index", "xino" and "redirect_dir" features have not been used. If the lower tree is modified and any of these features has been used, the behavior of the overlay is undefined, though it will not result in a crash or deadlock. -- 2.34.1 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH v2 1/2] overlayfs.rst: use consistent feature names 2023-12-13 12:34 ` [PATCH v2 1/2] overlayfs.rst: use consistent feature names Amir Goldstein @ 2023-12-14 4:52 ` Bagas Sanjaya 0 siblings, 0 replies; 9+ messages in thread From: Bagas Sanjaya @ 2023-12-14 4:52 UTC (permalink / raw) To: Amir Goldstein, Miklos Szeredi Cc: Christian Brauner, linux-unionfs, linux-doc [-- Attachment #1: Type: text/plain, Size: 5858 bytes --] On Wed, Dec 13, 2023 at 02:34:21PM +0200, Amir Goldstein wrote: > Use the feature names "metacopy" and "index" consistently throughout > the document. > > Covert the numbered list of features "redirect_dir", "index", "xino" > to section headings, so that those features could be referenced in the > document by their name. > > Signed-off-by: Amir Goldstein <amir73il@gmail.com> > --- > Documentation/filesystems/overlayfs.rst | 27 ++++++++++++++----------- > 1 file changed, 15 insertions(+), 12 deletions(-) > > diff --git a/Documentation/filesystems/overlayfs.rst b/Documentation/filesystems/overlayfs.rst > index 0407f361f32a..926396fdc5eb 100644 > --- a/Documentation/filesystems/overlayfs.rst > +++ b/Documentation/filesystems/overlayfs.rst > @@ -39,7 +39,7 @@ objects in the original filesystem. > On 64bit systems, even if all overlay layers are not on the same > underlying filesystem, the same compliant behavior could be achieved > with the "xino" feature. The "xino" feature composes a unique object > -identifier from the real object st_ino and an underlying fsid index. > +identifier from the real object st_ino and an underlying fsid number. > The "xino" feature uses the high inode number bits for fsid, because the > underlying filesystems rarely use the high inode number bits. In case > the underlying inode number does overflow into the high xino bits, overlay > @@ -356,7 +356,7 @@ as an octal characters (\072) when displayed in /proc/self/mountinfo. > Metadata only copy up > --------------------- > > -When metadata only copy up feature is enabled, overlayfs will only copy > +When the "metacopy" feature is enabled, overlayfs will only copy > up metadata (as opposed to whole file), when a metadata specific operation > like chown/chmod is performed. Full file will be copied up later when > file is opened for WRITE operation. > @@ -492,27 +492,27 @@ though it will not result in a crash or deadlock. > > Mounting an overlay using an upper layer path, where the upper layer path > was previously used by another mounted overlay in combination with a > -different lower layer path, is allowed, unless the "inodes index" feature > -or "metadata only copy up" feature is enabled. > +different lower layer path, is allowed, unless the "index" or "metacopy" > +features are enabled. > > -With the "inodes index" feature, on the first time mount, an NFS file > +With the "index" feature, on the first time mount, an NFS file > handle of the lower layer root directory, along with the UUID of the lower > filesystem, are encoded and stored in the "trusted.overlay.origin" extended > attribute on the upper layer root directory. On subsequent mount attempts, > the lower root directory file handle and lower filesystem UUID are compared > to the stored origin in upper root directory. On failure to verify the > lower root origin, mount will fail with ESTALE. An overlayfs mount with > -"inodes index" enabled will fail with EOPNOTSUPP if the lower filesystem > +"index" enabled will fail with EOPNOTSUPP if the lower filesystem > does not support NFS export, lower filesystem does not have a valid UUID or > if the upper filesystem does not support extended attributes. > > -For "metadata only copy up" feature there is no verification mechanism at > +For the "metacopy" feature, there is no verification mechanism at > mount time. So if same upper is mounted with different set of lower, mount > probably will succeed but expect the unexpected later on. So don't do it. > > It is quite a common practice to copy overlay layers to a different > directory tree on the same or different underlying filesystem, and even > -to a different machine. With the "inodes index" feature, trying to mount > +to a different machine. With the "index" feature, trying to mount > the copied layers will fail the verification of the lower root file handle. > > Nesting overlayfs mounts > @@ -560,7 +560,8 @@ file for write or truncating the file will not be denied with ETXTBSY. > The following options allow overlayfs to act more like a standards > compliant filesystem: > > -1) "redirect_dir" > +redirect_dir > +```````````` > > Enabled with the mount option or module option: "redirect_dir=on" or with > the kernel config option CONFIG_OVERLAY_FS_REDIRECT_DIR=y. > @@ -568,7 +569,8 @@ the kernel config option CONFIG_OVERLAY_FS_REDIRECT_DIR=y. > If this feature is disabled, then rename(2) on a lower or merged directory > will fail with EXDEV ("Invalid cross-device link"). > > -2) "inode index" > +index > +````` > > Enabled with the mount option or module option "index=on" or with the > kernel config option CONFIG_OVERLAY_FS_INDEX=y. > @@ -577,7 +579,8 @@ If this feature is disabled and a file with multiple hard links is copied > up, then this will "break" the link. Changes will not be propagated to > other names referring to the same inode. > > -3) "xino" > +xino > +```` > > Enabled with the mount option "xino=auto" or "xino=on", with the module > option "xino_auto=on" or with the kernel config option > @@ -604,7 +607,7 @@ a crash or deadlock. > > Offline changes, when the overlay is not mounted, are allowed to the > upper tree. Offline changes to the lower tree are only allowed if the > -"metadata only copy up", "inode index", "xino" and "redirect_dir" features > +"metacopy", "index", "xino" and "redirect_dir" features > have not been used. If the lower tree is modified and any of these > features has been used, the behavior of the overlay is undefined, > though it will not result in a crash or deadlock. LGTM, thanks! Reviewed-by: Bagas Sanjaya <bagasdotme@gmail.com> -- An old man doll... just what I always wanted! - Clara [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 228 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v2 2/2] overlayfs.rst: fix ReST formatting 2023-12-13 12:34 [PATCH v2 0/2] Fixes to overlayfs documentation Amir Goldstein 2023-12-13 12:34 ` [PATCH v2 1/2] overlayfs.rst: use consistent feature names Amir Goldstein @ 2023-12-13 12:34 ` Amir Goldstein 2023-12-14 4:53 ` Bagas Sanjaya 2023-12-15 2:07 ` Akira Yokosawa 1 sibling, 2 replies; 9+ messages in thread From: Amir Goldstein @ 2023-12-13 12:34 UTC (permalink / raw) To: Miklos Szeredi; +Cc: Christian Brauner, Bagas Sanjaya, linux-unionfs, linux-doc Fix some indentation issues and fix missing newlines in quoted text by converting quoted text to code blocks. Unindent a) b) enumerated list to workaround github displaying it as numbered list. Reported-by: Christian Brauner <brauner@kernel.org> Suggested-by: Bagas Sanjaya <bagasdotme@gmail.com> Signed-off-by: Amir Goldstein <amir73il@gmail.com> --- Documentation/filesystems/overlayfs.rst | 63 +++++++++++++------------ 1 file changed, 32 insertions(+), 31 deletions(-) diff --git a/Documentation/filesystems/overlayfs.rst b/Documentation/filesystems/overlayfs.rst index 926396fdc5eb..a36f3a2a2d4b 100644 --- a/Documentation/filesystems/overlayfs.rst +++ b/Documentation/filesystems/overlayfs.rst @@ -118,7 +118,7 @@ Where both upper and lower objects are directories, a merged directory is formed. At mount time, the two directories given as mount options "lowerdir" and -"upperdir" are combined into a merged directory: +"upperdir" are combined into a merged directory:: mount -t overlay overlay -olowerdir=/lower,upperdir=/upper,\ workdir=/work /merged @@ -174,10 +174,10 @@ programs. seek offsets are assigned sequentially when the directories are read. Thus if - - read part of a directory - - remember an offset, and close the directory - - re-open the directory some time later - - seek to the remembered offset +- read part of a directory +- remember an offset, and close the directory +- re-open the directory some time later +- seek to the remembered offset there may be little correlation between the old and new locations in the list of filenames, particularly if anything has changed in the @@ -285,21 +285,21 @@ Permission model Permission checking in the overlay filesystem follows these principles: - 1) permission check SHOULD return the same result before and after copy up +1) permission check SHOULD return the same result before and after copy up - 2) task creating the overlay mount MUST NOT gain additional privileges +2) task creating the overlay mount MUST NOT gain additional privileges - 3) non-mounting task MAY gain additional privileges through the overlay, - compared to direct access on underlying lower or upper filesystems +3) non-mounting task MAY gain additional privileges through the overlay, + compared to direct access on underlying lower or upper filesystems -This is achieved by performing two permission checks on each access +This is achieved by performing two permission checks on each access: - a) check if current task is allowed access based on local DAC (owner, - group, mode and posix acl), as well as MAC checks +a) check if current task is allowed access based on local DAC (owner, +group, mode and posix acl), as well as MAC checks - b) check if mounting task would be allowed real operation on lower or - upper layer based on underlying filesystem permissions, again including - MAC checks +b) check if mounting task would be allowed real operation on lower or +upper layer based on underlying filesystem permissions, again including +MAC checks Check (a) ensures consistency (1) since owner, group, mode and posix acls are copied up. On the other hand it can result in server enforced @@ -311,11 +311,11 @@ to create setups where the consistency rule (1) does not hold; normally, however, the mounting task will have sufficient privileges to perform all operations. -Another way to demonstrate this model is drawing parallels between +Another way to demonstrate this model is drawing parallels between:: mount -t overlay overlay -olowerdir=/lower,upperdir=/upper,... /merged -and +and:: cp -a /lower /upper mount --bind /upper /merged @@ -328,7 +328,7 @@ Multiple lower layers --------------------- Multiple lower layers can now be given using the colon (":") as a -separator character between the directory names. For example: +separator character between the directory names. For example:: mount -t overlay overlay -olowerdir=/lower1:/lower2:/lower3 /merged @@ -340,13 +340,13 @@ rightmost one and going left. In the above example lower1 will be the top, lower2 the middle and lower3 the bottom layer. Note: directory names containing colons can be provided as lower layer by -escaping the colons with a single backslash. For example: +escaping the colons with a single backslash. For example:: mount -t overlay overlay -olowerdir=/a\:lower\:\:dir /merged Since kernel version v6.8, directory names containing colons can also be configured as lower layer using the "lowerdir+" mount options and the -fsconfig syscall from new mount api. For example: +fsconfig syscall from new mount api. For example:: fsconfig(fs_fd, FSCONFIG_SET_STRING, "lowerdir+", "/a:lower::dir", 0); @@ -390,11 +390,11 @@ Data-only lower layers With "metacopy" feature enabled, an overlayfs regular file may be a composition of information from up to three different layers: - 1) metadata from a file in the upper layer +1) metadata from a file in the upper layer - 2) st_ino and st_dev object identifier from a file in a lower layer +2) st_ino and st_dev object identifier from a file in a lower layer - 3) data from a file in another lower layer (further below) +3) data from a file in another lower layer (further below) The "lower data" file can be on any lower layer, except from the top most lower layer. @@ -405,7 +405,7 @@ A normal lower layer is not allowed to be below a data-only layer, so single colon separators are not allowed to the right of double colon ("::") separators. -For example: +For example:: mount -t overlay overlay -olowerdir=/l1:/l2:/l3::/do1::/do2 /merged @@ -419,7 +419,7 @@ to the absolute path of the "lower data" file in the "data-only" lower layer. Since kernel version v6.8, "data-only" lower layers can also be added using the "datadir+" mount options and the fsconfig syscall from new mount api. -For example: +For example:: fsconfig(fs_fd, FSCONFIG_SET_STRING, "lowerdir+", "/l1", 0); fsconfig(fs_fd, FSCONFIG_SET_STRING, "lowerdir+", "/l2", 0); @@ -429,7 +429,7 @@ For example: fs-verity support ----------------------- +----------------- During metadata copy up of a lower file, if the source file has fs-verity enabled and overlay verity support is enabled, then the @@ -653,9 +653,10 @@ following rules apply: encode an upper file handle from upper inode The encoded overlay file handle includes: - - Header including path type information (e.g. lower/upper) - - UUID of the underlying filesystem - - Underlying filesystem encoding of underlying inode + +- Header including path type information (e.g. lower/upper) +- UUID of the underlying filesystem +- Underlying filesystem encoding of underlying inode This encoding format is identical to the encoding format file handles that are stored in extended attribute "trusted.overlay.origin". @@ -773,9 +774,9 @@ Testsuite There's a testsuite originally developed by David Howells and currently maintained by Amir Goldstein at: - https://github.com/amir73il/unionmount-testsuite.git +https://github.com/amir73il/unionmount-testsuite.git -Run as root: +Run as root:: # cd unionmount-testsuite # ./run --ov --verify -- 2.34.1 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH v2 2/2] overlayfs.rst: fix ReST formatting 2023-12-13 12:34 ` [PATCH v2 2/2] overlayfs.rst: fix ReST formatting Amir Goldstein @ 2023-12-14 4:53 ` Bagas Sanjaya 2023-12-15 2:07 ` Akira Yokosawa 1 sibling, 0 replies; 9+ messages in thread From: Bagas Sanjaya @ 2023-12-14 4:53 UTC (permalink / raw) To: Amir Goldstein, Miklos Szeredi Cc: Christian Brauner, linux-unionfs, linux-doc [-- Attachment #1: Type: text/plain, Size: 7962 bytes --] On Wed, Dec 13, 2023 at 02:34:22PM +0200, Amir Goldstein wrote: > Fix some indentation issues and fix missing newlines in quoted text > by converting quoted text to code blocks. > > Unindent a) b) enumerated list to workaround github displaying it > as numbered list. > > Reported-by: Christian Brauner <brauner@kernel.org> > Suggested-by: Bagas Sanjaya <bagasdotme@gmail.com> > Signed-off-by: Amir Goldstein <amir73il@gmail.com> > --- > Documentation/filesystems/overlayfs.rst | 63 +++++++++++++------------ > 1 file changed, 32 insertions(+), 31 deletions(-) > > diff --git a/Documentation/filesystems/overlayfs.rst b/Documentation/filesystems/overlayfs.rst > index 926396fdc5eb..a36f3a2a2d4b 100644 > --- a/Documentation/filesystems/overlayfs.rst > +++ b/Documentation/filesystems/overlayfs.rst > @@ -118,7 +118,7 @@ Where both upper and lower objects are directories, a merged directory > is formed. > > At mount time, the two directories given as mount options "lowerdir" and > -"upperdir" are combined into a merged directory: > +"upperdir" are combined into a merged directory:: > > mount -t overlay overlay -olowerdir=/lower,upperdir=/upper,\ > workdir=/work /merged > @@ -174,10 +174,10 @@ programs. > seek offsets are assigned sequentially when the directories are read. > Thus if > > - - read part of a directory > - - remember an offset, and close the directory > - - re-open the directory some time later > - - seek to the remembered offset > +- read part of a directory > +- remember an offset, and close the directory > +- re-open the directory some time later > +- seek to the remembered offset > > there may be little correlation between the old and new locations in > the list of filenames, particularly if anything has changed in the > @@ -285,21 +285,21 @@ Permission model > > Permission checking in the overlay filesystem follows these principles: > > - 1) permission check SHOULD return the same result before and after copy up > +1) permission check SHOULD return the same result before and after copy up > > - 2) task creating the overlay mount MUST NOT gain additional privileges > +2) task creating the overlay mount MUST NOT gain additional privileges > > - 3) non-mounting task MAY gain additional privileges through the overlay, > - compared to direct access on underlying lower or upper filesystems > +3) non-mounting task MAY gain additional privileges through the overlay, > + compared to direct access on underlying lower or upper filesystems > > -This is achieved by performing two permission checks on each access > +This is achieved by performing two permission checks on each access: > > - a) check if current task is allowed access based on local DAC (owner, > - group, mode and posix acl), as well as MAC checks > +a) check if current task is allowed access based on local DAC (owner, > +group, mode and posix acl), as well as MAC checks > > - b) check if mounting task would be allowed real operation on lower or > - upper layer based on underlying filesystem permissions, again including > - MAC checks > +b) check if mounting task would be allowed real operation on lower or > +upper layer based on underlying filesystem permissions, again including > +MAC checks > > Check (a) ensures consistency (1) since owner, group, mode and posix acls > are copied up. On the other hand it can result in server enforced > @@ -311,11 +311,11 @@ to create setups where the consistency rule (1) does not hold; normally, > however, the mounting task will have sufficient privileges to perform all > operations. > > -Another way to demonstrate this model is drawing parallels between > +Another way to demonstrate this model is drawing parallels between:: > > mount -t overlay overlay -olowerdir=/lower,upperdir=/upper,... /merged > > -and > +and:: > > cp -a /lower /upper > mount --bind /upper /merged > @@ -328,7 +328,7 @@ Multiple lower layers > --------------------- > > Multiple lower layers can now be given using the colon (":") as a > -separator character between the directory names. For example: > +separator character between the directory names. For example:: > > mount -t overlay overlay -olowerdir=/lower1:/lower2:/lower3 /merged > > @@ -340,13 +340,13 @@ rightmost one and going left. In the above example lower1 will be the > top, lower2 the middle and lower3 the bottom layer. > > Note: directory names containing colons can be provided as lower layer by > -escaping the colons with a single backslash. For example: > +escaping the colons with a single backslash. For example:: > > mount -t overlay overlay -olowerdir=/a\:lower\:\:dir /merged > > Since kernel version v6.8, directory names containing colons can also > be configured as lower layer using the "lowerdir+" mount options and the > -fsconfig syscall from new mount api. For example: > +fsconfig syscall from new mount api. For example:: > > fsconfig(fs_fd, FSCONFIG_SET_STRING, "lowerdir+", "/a:lower::dir", 0); > > @@ -390,11 +390,11 @@ Data-only lower layers > With "metacopy" feature enabled, an overlayfs regular file may be a composition > of information from up to three different layers: > > - 1) metadata from a file in the upper layer > +1) metadata from a file in the upper layer > > - 2) st_ino and st_dev object identifier from a file in a lower layer > +2) st_ino and st_dev object identifier from a file in a lower layer > > - 3) data from a file in another lower layer (further below) > +3) data from a file in another lower layer (further below) > > The "lower data" file can be on any lower layer, except from the top most > lower layer. > @@ -405,7 +405,7 @@ A normal lower layer is not allowed to be below a data-only layer, so single > colon separators are not allowed to the right of double colon ("::") separators. > > > -For example: > +For example:: > > mount -t overlay overlay -olowerdir=/l1:/l2:/l3::/do1::/do2 /merged > > @@ -419,7 +419,7 @@ to the absolute path of the "lower data" file in the "data-only" lower layer. > > Since kernel version v6.8, "data-only" lower layers can also be added using > the "datadir+" mount options and the fsconfig syscall from new mount api. > -For example: > +For example:: > > fsconfig(fs_fd, FSCONFIG_SET_STRING, "lowerdir+", "/l1", 0); > fsconfig(fs_fd, FSCONFIG_SET_STRING, "lowerdir+", "/l2", 0); > @@ -429,7 +429,7 @@ For example: > > > fs-verity support > ----------------------- > +----------------- > > During metadata copy up of a lower file, if the source file has > fs-verity enabled and overlay verity support is enabled, then the > @@ -653,9 +653,10 @@ following rules apply: > encode an upper file handle from upper inode > > The encoded overlay file handle includes: > - - Header including path type information (e.g. lower/upper) > - - UUID of the underlying filesystem > - - Underlying filesystem encoding of underlying inode > + > +- Header including path type information (e.g. lower/upper) > +- UUID of the underlying filesystem > +- Underlying filesystem encoding of underlying inode > > This encoding format is identical to the encoding format file handles that > are stored in extended attribute "trusted.overlay.origin". > @@ -773,9 +774,9 @@ Testsuite > There's a testsuite originally developed by David Howells and currently > maintained by Amir Goldstein at: > > - https://github.com/amir73il/unionmount-testsuite.git > +https://github.com/amir73il/unionmount-testsuite.git > > -Run as root: > +Run as root:: > > # cd unionmount-testsuite > # ./run --ov --verify LGTM, thanks! Reviewed-by: Bagas Sanjaya <bagasdotme@gmail.com> -- An old man doll... just what I always wanted! - Clara [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 228 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2 2/2] overlayfs.rst: fix ReST formatting 2023-12-13 12:34 ` [PATCH v2 2/2] overlayfs.rst: fix ReST formatting Amir Goldstein 2023-12-14 4:53 ` Bagas Sanjaya @ 2023-12-15 2:07 ` Akira Yokosawa 2023-12-15 8:00 ` Amir Goldstein 1 sibling, 1 reply; 9+ messages in thread From: Akira Yokosawa @ 2023-12-15 2:07 UTC (permalink / raw) To: amir73il Cc: bagasdotme, brauner, linux-doc, linux-unionfs, miklos, Akira Yokosawa Hi, On Wed, 13 Dec 2023 14:34:22 +0200, Amir Goldstein wrote: > Fix some indentation issues and fix missing newlines in quoted text > by converting quoted text to code blocks. > > Unindent a) b) enumerated list to workaround github displaying it > as numbered list. I don't think we need to work around github's weird behavior around enumerated lists. What matters for us is what Sphinx (+ our own extensions) ends up generating. The corresponding html page rendered by Sphinx is at: https://www.kernel.org/doc/html/latest/filesystems/overlayfs.html#permission-model It does not look perfect, but at least it preserves enumeration by number and alphabet. I'd suggest reporting github about the minor breakage of their rst renderer. Further comments below: > > Reported-by: Christian Brauner <brauner@kernel.org> > Suggested-by: Bagas Sanjaya <bagasdotme@gmail.com> > Signed-off-by: Amir Goldstein <amir73il@gmail.com> > --- > Documentation/filesystems/overlayfs.rst | 63 +++++++++++++------------ > 1 file changed, 32 insertions(+), 31 deletions(-) > > diff --git a/Documentation/filesystems/overlayfs.rst b/Documentation/filesystems/overlayfs.rst > index 926396fdc5eb..a36f3a2a2d4b 100644 > --- a/Documentation/filesystems/overlayfs.rst > +++ b/Documentation/filesystems/overlayfs.rst > @@ -118,7 +118,7 @@ Where both upper and lower objects are directories, a merged directory > is formed. > > At mount time, the two directories given as mount options "lowerdir" and > -"upperdir" are combined into a merged directory: > +"upperdir" are combined into a merged directory:: > > mount -t overlay overlay -olowerdir=/lower,upperdir=/upper,\ > workdir=/work /merged > @@ -174,10 +174,10 @@ programs. > seek offsets are assigned sequentially when the directories are read. > Thus if > > - - read part of a directory > - - remember an offset, and close the directory > - - re-open the directory some time later > - - seek to the remembered offset > +- read part of a directory > +- remember an offset, and close the directory > +- re-open the directory some time later > +- seek to the remembered offset To my eyes, unindent spoils the readability of this file as pure plain text. Please don't do this. > > there may be little correlation between the old and new locations in > the list of filenames, particularly if anything has changed in the > @@ -285,21 +285,21 @@ Permission model > > Permission checking in the overlay filesystem follows these principles: > > - 1) permission check SHOULD return the same result before and after copy up > +1) permission check SHOULD return the same result before and after copy up > > - 2) task creating the overlay mount MUST NOT gain additional privileges > +2) task creating the overlay mount MUST NOT gain additional privileges > > - 3) non-mounting task MAY gain additional privileges through the overlay, > - compared to direct access on underlying lower or upper filesystems > +3) non-mounting task MAY gain additional privileges through the overlay, > + compared to direct access on underlying lower or upper filesystems All you need to fix is this adjustment of indent. Don't do other unindents please > > -This is achieved by performing two permission checks on each access > +This is achieved by performing two permission checks on each access: > > - a) check if current task is allowed access based on local DAC (owner, > - group, mode and posix acl), as well as MAC checks > +a) check if current task is allowed access based on local DAC (owner, > +group, mode and posix acl), as well as MAC checks > > - b) check if mounting task would be allowed real operation on lower or > - upper layer based on underlying filesystem permissions, again including > - MAC checks > +b) check if mounting task would be allowed real operation on lower or > +upper layer based on underlying filesystem permissions, again including > +MAC checks Your workaround harms the readability very badly. Don't break the construct of enumerated (or numbered) list in rst. For the specification of enumerated list, please see: https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html#enumerated-lists If there is a rst parser who fails to recognize some of the defined list structure, fix such a parser please! > > Check (a) ensures consistency (1) since owner, group, mode and posix acls > are copied up. On the other hand it can result in server enforced > @@ -311,11 +311,11 @@ to create setups where the consistency rule (1) does not hold; normally, > however, the mounting task will have sufficient privileges to perform all > operations. > > -Another way to demonstrate this model is drawing parallels between > +Another way to demonstrate this model is drawing parallels between:: > > mount -t overlay overlay -olowerdir=/lower,upperdir=/upper,... /merged > > -and > +and:: > > cp -a /lower /upper > mount --bind /upper /merged > @@ -328,7 +328,7 @@ Multiple lower layers > --------------------- > > Multiple lower layers can now be given using the colon (":") as a > -separator character between the directory names. For example: > +separator character between the directory names. For example:: > > mount -t overlay overlay -olowerdir=/lower1:/lower2:/lower3 /merged > > @@ -340,13 +340,13 @@ rightmost one and going left. In the above example lower1 will be the > top, lower2 the middle and lower3 the bottom layer. > > Note: directory names containing colons can be provided as lower layer by > -escaping the colons with a single backslash. For example: > +escaping the colons with a single backslash. For example:: > > mount -t overlay overlay -olowerdir=/a\:lower\:\:dir /merged > > Since kernel version v6.8, directory names containing colons can also > be configured as lower layer using the "lowerdir+" mount options and the > -fsconfig syscall from new mount api. For example: > +fsconfig syscall from new mount api. For example:: > > fsconfig(fs_fd, FSCONFIG_SET_STRING, "lowerdir+", "/a:lower::dir", 0); > > @@ -390,11 +390,11 @@ Data-only lower layers > With "metacopy" feature enabled, an overlayfs regular file may be a composition > of information from up to three different layers: > > - 1) metadata from a file in the upper layer > +1) metadata from a file in the upper layer > > - 2) st_ino and st_dev object identifier from a file in a lower layer > +2) st_ino and st_dev object identifier from a file in a lower layer > > - 3) data from a file in another lower layer (further below) > +3) data from a file in another lower layer (further below) Ditto. > > The "lower data" file can be on any lower layer, except from the top most > lower layer. > @@ -405,7 +405,7 @@ A normal lower layer is not allowed to be below a data-only layer, so single > colon separators are not allowed to the right of double colon ("::") separators. > > > -For example: > +For example:: > > mount -t overlay overlay -olowerdir=/l1:/l2:/l3::/do1::/do2 /merged > > @@ -419,7 +419,7 @@ to the absolute path of the "lower data" file in the "data-only" lower layer. > > Since kernel version v6.8, "data-only" lower layers can also be added using > the "datadir+" mount options and the fsconfig syscall from new mount api. > -For example: > +For example:: > > fsconfig(fs_fd, FSCONFIG_SET_STRING, "lowerdir+", "/l1", 0); > fsconfig(fs_fd, FSCONFIG_SET_STRING, "lowerdir+", "/l2", 0); > @@ -429,7 +429,7 @@ For example: > > > fs-verity support > ----------------------- > +----------------- > > During metadata copy up of a lower file, if the source file has > fs-verity enabled and overlay verity support is enabled, then the > @@ -653,9 +653,10 @@ following rules apply: > encode an upper file handle from upper inode > > The encoded overlay file handle includes: > - - Header including path type information (e.g. lower/upper) > - - UUID of the underlying filesystem > - - Underlying filesystem encoding of underlying inode > + > +- Header including path type information (e.g. lower/upper) > +- UUID of the underlying filesystem > +- Underlying filesystem encoding of underlying inode Ditto. > > This encoding format is identical to the encoding format file handles that > are stored in extended attribute "trusted.overlay.origin". > @@ -773,9 +774,9 @@ Testsuite > There's a testsuite originally developed by David Howells and currently > maintained by Amir Goldstein at: > > - https://github.com/amir73il/unionmount-testsuite.git > +https://github.com/amir73il/unionmount-testsuite.git > > -Run as root: > +Run as root:: > > # cd unionmount-testsuite > # ./run --ov --verify > -- > 2.34.1 BR, Akira ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2 2/2] overlayfs.rst: fix ReST formatting 2023-12-15 2:07 ` Akira Yokosawa @ 2023-12-15 8:00 ` Amir Goldstein 2023-12-15 9:31 ` Akira Yokosawa 0 siblings, 1 reply; 9+ messages in thread From: Amir Goldstein @ 2023-12-15 8:00 UTC (permalink / raw) To: Akira Yokosawa; +Cc: bagasdotme, brauner, linux-doc, linux-unionfs, miklos On Fri, Dec 15, 2023 at 4:07 AM Akira Yokosawa <akiyks@gmail.com> wrote: > > Hi, > > On Wed, 13 Dec 2023 14:34:22 +0200, Amir Goldstein wrote: > > Fix some indentation issues and fix missing newlines in quoted text > > by converting quoted text to code blocks. > > > > Unindent a) b) enumerated list to workaround github displaying it > > as numbered list. > > I don't think we need to work around github's weird behavior around > enumerated lists. What matters for us is what Sphinx (+ our own > extensions) ends up generating. > > The corresponding html page rendered by Sphinx is at: > https://www.kernel.org/doc/html/latest/filesystems/overlayfs.html#permission-model > > It does not look perfect, but at least it preserves enumeration by > number and alphabet. > ok. > I'd suggest reporting github about the minor breakage of their > rst renderer. > > Further comments below: > > > > > Reported-by: Christian Brauner <brauner@kernel.org> > > Suggested-by: Bagas Sanjaya <bagasdotme@gmail.com> > > Signed-off-by: Amir Goldstein <amir73il@gmail.com> > > --- > > Documentation/filesystems/overlayfs.rst | 63 +++++++++++++------------ > > 1 file changed, 32 insertions(+), 31 deletions(-) > > > > diff --git a/Documentation/filesystems/overlayfs.rst b/Documentation/filesystems/overlayfs.rst > > index 926396fdc5eb..a36f3a2a2d4b 100644 > > --- a/Documentation/filesystems/overlayfs.rst > > +++ b/Documentation/filesystems/overlayfs.rst > > @@ -118,7 +118,7 @@ Where both upper and lower objects are directories, a merged directory > > is formed. > > > > At mount time, the two directories given as mount options "lowerdir" and > > -"upperdir" are combined into a merged directory: > > +"upperdir" are combined into a merged directory:: > > > > mount -t overlay overlay -olowerdir=/lower,upperdir=/upper,\ > > workdir=/work /merged > > @@ -174,10 +174,10 @@ programs. > > seek offsets are assigned sequentially when the directories are read. > > Thus if > > > > - - read part of a directory > > - - remember an offset, and close the directory > > - - re-open the directory some time later > > - - seek to the remembered offset > > +- read part of a directory > > +- remember an offset, and close the directory > > +- re-open the directory some time later > > +- seek to the remembered offset > > To my eyes, unindent spoils the readability of this file as pure > plain text. Please don't do this. > Ok. I see what you mean. I restored a single space indent. I don't see why double space is called for and it is inconsistent with indentation in the rest of the doc. > > > > there may be little correlation between the old and new locations in > > the list of filenames, particularly if anything has changed in the > > @@ -285,21 +285,21 @@ Permission model > > > > Permission checking in the overlay filesystem follows these principles: > > > > - 1) permission check SHOULD return the same result before and after copy up > > +1) permission check SHOULD return the same result before and after copy up > > > > - 2) task creating the overlay mount MUST NOT gain additional privileges > > +2) task creating the overlay mount MUST NOT gain additional privileges > > > > - 3) non-mounting task MAY gain additional privileges through the overlay, > > - compared to direct access on underlying lower or upper filesystems > > +3) non-mounting task MAY gain additional privileges through the overlay, > > + compared to direct access on underlying lower or upper filesystems > > All you need to fix is this adjustment of indent. > Don't do other unindents please > OK. I also fixed the same indents in "Non-standard behavior". > > > > -This is achieved by performing two permission checks on each access > > +This is achieved by performing two permission checks on each access: > > > > - a) check if current task is allowed access based on local DAC (owner, > > - group, mode and posix acl), as well as MAC checks > > +a) check if current task is allowed access based on local DAC (owner, > > +group, mode and posix acl), as well as MAC checks > > > > - b) check if mounting task would be allowed real operation on lower or > > - upper layer based on underlying filesystem permissions, again including > > - MAC checks > > +b) check if mounting task would be allowed real operation on lower or > > +upper layer based on underlying filesystem permissions, again including > > +MAC checks > > Your workaround harms the readability very badly. > Don't break the construct of enumerated (or numbered) list in rst. > ok. > For the specification of enumerated list, please see: > > https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html#enumerated-lists > > If there is a rst parser who fails to recognize some of the defined > list structure, fix such a parser please! > > > > > Check (a) ensures consistency (1) since owner, group, mode and posix acls > > are copied up. On the other hand it can result in server enforced > > @@ -311,11 +311,11 @@ to create setups where the consistency rule (1) does not hold; normally, > > however, the mounting task will have sufficient privileges to perform all > > operations. > > > > -Another way to demonstrate this model is drawing parallels between > > +Another way to demonstrate this model is drawing parallels between:: > > > > mount -t overlay overlay -olowerdir=/lower,upperdir=/upper,... /merged > > > > -and > > +and:: > > > > cp -a /lower /upper > > mount --bind /upper /merged > > @@ -328,7 +328,7 @@ Multiple lower layers > > --------------------- > > > > Multiple lower layers can now be given using the colon (":") as a > > -separator character between the directory names. For example: > > +separator character between the directory names. For example:: > > > > mount -t overlay overlay -olowerdir=/lower1:/lower2:/lower3 /merged > > > > @@ -340,13 +340,13 @@ rightmost one and going left. In the above example lower1 will be the > > top, lower2 the middle and lower3 the bottom layer. > > > > Note: directory names containing colons can be provided as lower layer by > > -escaping the colons with a single backslash. For example: > > +escaping the colons with a single backslash. For example:: > > > > mount -t overlay overlay -olowerdir=/a\:lower\:\:dir /merged > > > > Since kernel version v6.8, directory names containing colons can also > > be configured as lower layer using the "lowerdir+" mount options and the > > -fsconfig syscall from new mount api. For example: > > +fsconfig syscall from new mount api. For example:: > > > > fsconfig(fs_fd, FSCONFIG_SET_STRING, "lowerdir+", "/a:lower::dir", 0); > > > > @@ -390,11 +390,11 @@ Data-only lower layers > > With "metacopy" feature enabled, an overlayfs regular file may be a composition > > of information from up to three different layers: > > > > - 1) metadata from a file in the upper layer > > +1) metadata from a file in the upper layer > > > > - 2) st_ino and st_dev object identifier from a file in a lower layer > > +2) st_ino and st_dev object identifier from a file in a lower layer > > > > - 3) data from a file in another lower layer (further below) > > +3) data from a file in another lower layer (further below) > > Ditto. > > > > > The "lower data" file can be on any lower layer, except from the top most > > lower layer. > > @@ -405,7 +405,7 @@ A normal lower layer is not allowed to be below a data-only layer, so single > > colon separators are not allowed to the right of double colon ("::") separators. > > > > > > -For example: > > +For example:: > > > > mount -t overlay overlay -olowerdir=/l1:/l2:/l3::/do1::/do2 /merged > > > > @@ -419,7 +419,7 @@ to the absolute path of the "lower data" file in the "data-only" lower layer. > > > > Since kernel version v6.8, "data-only" lower layers can also be added using > > the "datadir+" mount options and the fsconfig syscall from new mount api. > > -For example: > > +For example:: > > > > fsconfig(fs_fd, FSCONFIG_SET_STRING, "lowerdir+", "/l1", 0); > > fsconfig(fs_fd, FSCONFIG_SET_STRING, "lowerdir+", "/l2", 0); > > @@ -429,7 +429,7 @@ For example: > > > > > > fs-verity support > > ----------------------- > > +----------------- > > > > During metadata copy up of a lower file, if the source file has > > fs-verity enabled and overlay verity support is enabled, then the > > @@ -653,9 +653,10 @@ following rules apply: > > encode an upper file handle from upper inode > > > > The encoded overlay file handle includes: > > - - Header including path type information (e.g. lower/upper) > > - - UUID of the underlying filesystem > > - - Underlying filesystem encoding of underlying inode > > + > > +- Header including path type information (e.g. lower/upper) > > +- UUID of the underlying filesystem > > +- Underlying filesystem encoding of underlying inode > > Ditto. > ok, but inconsistent indentation between numbered and bullet list is also not nice: https://www.kernel.org/doc/html/latest/filesystems/overlayfs.html#nfs-export so I kept this indent and I also indented the non-indented numbered lists in this section to conform to the rest of the numbered lists in this doc. I've pushed the fixes to overlayfs-next. Kept RVB from Bagas, because your comment about the unindent is aligned with Bagas' initial review comment. Thanks, Amir. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2 2/2] overlayfs.rst: fix ReST formatting 2023-12-15 8:00 ` Amir Goldstein @ 2023-12-15 9:31 ` Akira Yokosawa 2023-12-15 10:32 ` Amir Goldstein 0 siblings, 1 reply; 9+ messages in thread From: Akira Yokosawa @ 2023-12-15 9:31 UTC (permalink / raw) To: Amir Goldstein Cc: bagasdotme, brauner, linux-doc, linux-unionfs, miklos, Akira Yokosawa Hi Amir, On 2023/12/15 17:00, Amir Goldstein wrote: > On Fri, Dec 15, 2023 at 4:07 AM Akira Yokosawa <akiyks@gmail.com> wrote: >> >> Hi, >> >> On Wed, 13 Dec 2023 14:34:22 +0200, Amir Goldstein wrote: >>> Fix some indentation issues and fix missing newlines in quoted text >>> by converting quoted text to code blocks. >>> >>> Unindent a) b) enumerated list to workaround github displaying it >>> as numbered list. >> >> I don't think we need to work around github's weird behavior around >> enumerated lists. What matters for us is what Sphinx (+ our own >> extensions) ends up generating. >> >> The corresponding html page rendered by Sphinx is at: >> https://www.kernel.org/doc/html/latest/filesystems/overlayfs.html#permission-model >> >> It does not look perfect, but at least it preserves enumeration by >> number and alphabet. >> > > ok. > >> I'd suggest reporting github about the minor breakage of their >> rst renderer. >> >> Further comments below: >> >>> >>> Reported-by: Christian Brauner <brauner@kernel.org> >>> Suggested-by: Bagas Sanjaya <bagasdotme@gmail.com> >>> Signed-off-by: Amir Goldstein <amir73il@gmail.com> >>> --- >>> Documentation/filesystems/overlayfs.rst | 63 +++++++++++++------------ >>> 1 file changed, 32 insertions(+), 31 deletions(-) >>> >>> diff --git a/Documentation/filesystems/overlayfs.rst b/Documentation/filesystems/overlayfs.rst >>> index 926396fdc5eb..a36f3a2a2d4b 100644 >>> --- a/Documentation/filesystems/overlayfs.rst >>> +++ b/Documentation/filesystems/overlayfs.rst >>> @@ -118,7 +118,7 @@ Where both upper and lower objects are directories, a merged directory >>> is formed. >>> >>> At mount time, the two directories given as mount options "lowerdir" and >>> -"upperdir" are combined into a merged directory: >>> +"upperdir" are combined into a merged directory:: >>> >>> mount -t overlay overlay -olowerdir=/lower,upperdir=/upper,\ >>> workdir=/work /merged >>> @@ -174,10 +174,10 @@ programs. >>> seek offsets are assigned sequentially when the directories are read. >>> Thus if >>> >>> - - read part of a directory >>> - - remember an offset, and close the directory >>> - - re-open the directory some time later >>> - - seek to the remembered offset >>> +- read part of a directory >>> +- remember an offset, and close the directory >>> +- re-open the directory some time later >>> +- seek to the remembered offset >> >> To my eyes, unindent spoils the readability of this file as pure >> plain text. Please don't do this. >> > > Ok. I see what you mean. > I restored a single space indent. > I don't see why double space is called for and it is inconsistent > with indentation in the rest of the doc. > >>> >>> there may be little correlation between the old and new locations in >>> the list of filenames, particularly if anything has changed in the >>> @@ -285,21 +285,21 @@ Permission model >>> >>> Permission checking in the overlay filesystem follows these principles: >>> >>> - 1) permission check SHOULD return the same result before and after copy up >>> +1) permission check SHOULD return the same result before and after copy up >>> >>> - 2) task creating the overlay mount MUST NOT gain additional privileges >>> +2) task creating the overlay mount MUST NOT gain additional privileges >>> >>> - 3) non-mounting task MAY gain additional privileges through the overlay, >>> - compared to direct access on underlying lower or upper filesystems >>> +3) non-mounting task MAY gain additional privileges through the overlay, >>> + compared to direct access on underlying lower or upper filesystems >> >> All you need to fix is this adjustment of indent. >> Don't do other unindents please >> > > OK. I also fixed the same indents in "Non-standard behavior". > >>> >>> -This is achieved by performing two permission checks on each access >>> +This is achieved by performing two permission checks on each access: >>> >>> - a) check if current task is allowed access based on local DAC (owner, >>> - group, mode and posix acl), as well as MAC checks >>> +a) check if current task is allowed access based on local DAC (owner, >>> +group, mode and posix acl), as well as MAC checks >>> >>> - b) check if mounting task would be allowed real operation on lower or >>> - upper layer based on underlying filesystem permissions, again including >>> - MAC checks >>> +b) check if mounting task would be allowed real operation on lower or >>> +upper layer based on underlying filesystem permissions, again including >>> +MAC checks >> >> Your workaround harms the readability very badly. >> Don't break the construct of enumerated (or numbered) list in rst. >> > > ok. > >> For the specification of enumerated list, please see: >> >> https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html#enumerated-lists >> >> If there is a rst parser who fails to recognize some of the defined >> list structure, fix such a parser please! >> >>> >>> Check (a) ensures consistency (1) since owner, group, mode and posix acls >>> are copied up. On the other hand it can result in server enforced >>> @@ -311,11 +311,11 @@ to create setups where the consistency rule (1) does not hold; normally, >>> however, the mounting task will have sufficient privileges to perform all >>> operations. >>> >>> -Another way to demonstrate this model is drawing parallels between >>> +Another way to demonstrate this model is drawing parallels between:: >>> >>> mount -t overlay overlay -olowerdir=/lower,upperdir=/upper,... /merged >>> >>> -and >>> +and:: >>> >>> cp -a /lower /upper >>> mount --bind /upper /merged >>> @@ -328,7 +328,7 @@ Multiple lower layers >>> --------------------- >>> >>> Multiple lower layers can now be given using the colon (":") as a >>> -separator character between the directory names. For example: >>> +separator character between the directory names. For example:: >>> >>> mount -t overlay overlay -olowerdir=/lower1:/lower2:/lower3 /merged >>> >>> @@ -340,13 +340,13 @@ rightmost one and going left. In the above example lower1 will be the >>> top, lower2 the middle and lower3 the bottom layer. >>> >>> Note: directory names containing colons can be provided as lower layer by >>> -escaping the colons with a single backslash. For example: >>> +escaping the colons with a single backslash. For example:: >>> >>> mount -t overlay overlay -olowerdir=/a\:lower\:\:dir /merged >>> >>> Since kernel version v6.8, directory names containing colons can also >>> be configured as lower layer using the "lowerdir+" mount options and the >>> -fsconfig syscall from new mount api. For example: >>> +fsconfig syscall from new mount api. For example:: >>> >>> fsconfig(fs_fd, FSCONFIG_SET_STRING, "lowerdir+", "/a:lower::dir", 0); >>> >>> @@ -390,11 +390,11 @@ Data-only lower layers >>> With "metacopy" feature enabled, an overlayfs regular file may be a composition >>> of information from up to three different layers: >>> >>> - 1) metadata from a file in the upper layer >>> +1) metadata from a file in the upper layer >>> >>> - 2) st_ino and st_dev object identifier from a file in a lower layer >>> +2) st_ino and st_dev object identifier from a file in a lower layer >>> >>> - 3) data from a file in another lower layer (further below) >>> +3) data from a file in another lower layer (further below) >> >> Ditto. >> >>> >>> The "lower data" file can be on any lower layer, except from the top most >>> lower layer. >>> @@ -405,7 +405,7 @@ A normal lower layer is not allowed to be below a data-only layer, so single >>> colon separators are not allowed to the right of double colon ("::") separators. >>> >>> >>> -For example: >>> +For example:: >>> >>> mount -t overlay overlay -olowerdir=/l1:/l2:/l3::/do1::/do2 /merged >>> >>> @@ -419,7 +419,7 @@ to the absolute path of the "lower data" file in the "data-only" lower layer. >>> >>> Since kernel version v6.8, "data-only" lower layers can also be added using >>> the "datadir+" mount options and the fsconfig syscall from new mount api. >>> -For example: >>> +For example:: >>> >>> fsconfig(fs_fd, FSCONFIG_SET_STRING, "lowerdir+", "/l1", 0); >>> fsconfig(fs_fd, FSCONFIG_SET_STRING, "lowerdir+", "/l2", 0); >>> @@ -429,7 +429,7 @@ For example: >>> >>> >>> fs-verity support >>> ----------------------- >>> +----------------- >>> >>> During metadata copy up of a lower file, if the source file has >>> fs-verity enabled and overlay verity support is enabled, then the >>> @@ -653,9 +653,10 @@ following rules apply: >>> encode an upper file handle from upper inode >>> >>> The encoded overlay file handle includes: >>> - - Header including path type information (e.g. lower/upper) >>> - - UUID of the underlying filesystem >>> - - Underlying filesystem encoding of underlying inode >>> + >>> +- Header including path type information (e.g. lower/upper) >>> +- UUID of the underlying filesystem >>> +- Underlying filesystem encoding of underlying inode >> >> Ditto. >> > > ok, but inconsistent indentation between numbered and bullet list is > also not nice: > https://www.kernel.org/doc/html/latest/filesystems/overlayfs.html#nfs-export I agree. > > so I kept this indent and I also indented the non-indented numbered lists > in this section to conform to the rest of the numbered lists in this doc. > > I've pushed the fixes to overlayfs-next. OK. I'm looking at commit 4552f4b1be08 ("overlayfs.rst: fix ReST formatting"). It looks reasonable to me. If you'd like, feel free to add Reviewed-by: Akira Yokosawa <akiyks@gmail.com> Regards, Akira > Kept RVB from Bagas, because your comment about the unindent is > aligned with Bagas' initial review comment. > > Thanks, > Amir. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2 2/2] overlayfs.rst: fix ReST formatting 2023-12-15 9:31 ` Akira Yokosawa @ 2023-12-15 10:32 ` Amir Goldstein 0 siblings, 0 replies; 9+ messages in thread From: Amir Goldstein @ 2023-12-15 10:32 UTC (permalink / raw) To: Akira Yokosawa; +Cc: bagasdotme, brauner, linux-doc, linux-unionfs, miklos On Fri, Dec 15, 2023 at 11:31 AM Akira Yokosawa <akiyks@gmail.com> wrote: > > Hi Amir, > > On 2023/12/15 17:00, Amir Goldstein wrote: > > On Fri, Dec 15, 2023 at 4:07 AM Akira Yokosawa <akiyks@gmail.com> wrote: > >> > >> Hi, > >> > >> On Wed, 13 Dec 2023 14:34:22 +0200, Amir Goldstein wrote: > >>> Fix some indentation issues and fix missing newlines in quoted text > >>> by converting quoted text to code blocks. > >>> > >>> Unindent a) b) enumerated list to workaround github displaying it > >>> as numbered list. > >> > >> I don't think we need to work around github's weird behavior around > >> enumerated lists. What matters for us is what Sphinx (+ our own > >> extensions) ends up generating. > >> > >> The corresponding html page rendered by Sphinx is at: > >> https://www.kernel.org/doc/html/latest/filesystems/overlayfs.html#permission-model > >> > >> It does not look perfect, but at least it preserves enumeration by > >> number and alphabet. > >> > > > > ok. > > > >> I'd suggest reporting github about the minor breakage of their > >> rst renderer. > >> > >> Further comments below: > >> > >>> > >>> Reported-by: Christian Brauner <brauner@kernel.org> > >>> Suggested-by: Bagas Sanjaya <bagasdotme@gmail.com> > >>> Signed-off-by: Amir Goldstein <amir73il@gmail.com> > >>> --- > >>> Documentation/filesystems/overlayfs.rst | 63 +++++++++++++------------ > >>> 1 file changed, 32 insertions(+), 31 deletions(-) > >>> > >>> diff --git a/Documentation/filesystems/overlayfs.rst b/Documentation/filesystems/overlayfs.rst > >>> index 926396fdc5eb..a36f3a2a2d4b 100644 > >>> --- a/Documentation/filesystems/overlayfs.rst > >>> +++ b/Documentation/filesystems/overlayfs.rst > >>> @@ -118,7 +118,7 @@ Where both upper and lower objects are directories, a merged directory > >>> is formed. > >>> > >>> At mount time, the two directories given as mount options "lowerdir" and > >>> -"upperdir" are combined into a merged directory: > >>> +"upperdir" are combined into a merged directory:: > >>> > >>> mount -t overlay overlay -olowerdir=/lower,upperdir=/upper,\ > >>> workdir=/work /merged > >>> @@ -174,10 +174,10 @@ programs. > >>> seek offsets are assigned sequentially when the directories are read. > >>> Thus if > >>> > >>> - - read part of a directory > >>> - - remember an offset, and close the directory > >>> - - re-open the directory some time later > >>> - - seek to the remembered offset > >>> +- read part of a directory > >>> +- remember an offset, and close the directory > >>> +- re-open the directory some time later > >>> +- seek to the remembered offset > >> > >> To my eyes, unindent spoils the readability of this file as pure > >> plain text. Please don't do this. > >> > > > > Ok. I see what you mean. > > I restored a single space indent. > > I don't see why double space is called for and it is inconsistent > > with indentation in the rest of the doc. > > > >>> > >>> there may be little correlation between the old and new locations in > >>> the list of filenames, particularly if anything has changed in the > >>> @@ -285,21 +285,21 @@ Permission model > >>> > >>> Permission checking in the overlay filesystem follows these principles: > >>> > >>> - 1) permission check SHOULD return the same result before and after copy up > >>> +1) permission check SHOULD return the same result before and after copy up > >>> > >>> - 2) task creating the overlay mount MUST NOT gain additional privileges > >>> +2) task creating the overlay mount MUST NOT gain additional privileges > >>> > >>> - 3) non-mounting task MAY gain additional privileges through the overlay, > >>> - compared to direct access on underlying lower or upper filesystems > >>> +3) non-mounting task MAY gain additional privileges through the overlay, > >>> + compared to direct access on underlying lower or upper filesystems > >> > >> All you need to fix is this adjustment of indent. > >> Don't do other unindents please > >> > > > > OK. I also fixed the same indents in "Non-standard behavior". > > > >>> > >>> -This is achieved by performing two permission checks on each access > >>> +This is achieved by performing two permission checks on each access: > >>> > >>> - a) check if current task is allowed access based on local DAC (owner, > >>> - group, mode and posix acl), as well as MAC checks > >>> +a) check if current task is allowed access based on local DAC (owner, > >>> +group, mode and posix acl), as well as MAC checks > >>> > >>> - b) check if mounting task would be allowed real operation on lower or > >>> - upper layer based on underlying filesystem permissions, again including > >>> - MAC checks > >>> +b) check if mounting task would be allowed real operation on lower or > >>> +upper layer based on underlying filesystem permissions, again including > >>> +MAC checks > >> > >> Your workaround harms the readability very badly. > >> Don't break the construct of enumerated (or numbered) list in rst. > >> > > > > ok. > > > >> For the specification of enumerated list, please see: > >> > >> https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html#enumerated-lists > >> > >> If there is a rst parser who fails to recognize some of the defined > >> list structure, fix such a parser please! > >> > >>> > >>> Check (a) ensures consistency (1) since owner, group, mode and posix acls > >>> are copied up. On the other hand it can result in server enforced > >>> @@ -311,11 +311,11 @@ to create setups where the consistency rule (1) does not hold; normally, > >>> however, the mounting task will have sufficient privileges to perform all > >>> operations. > >>> > >>> -Another way to demonstrate this model is drawing parallels between > >>> +Another way to demonstrate this model is drawing parallels between:: > >>> > >>> mount -t overlay overlay -olowerdir=/lower,upperdir=/upper,... /merged > >>> > >>> -and > >>> +and:: > >>> > >>> cp -a /lower /upper > >>> mount --bind /upper /merged > >>> @@ -328,7 +328,7 @@ Multiple lower layers > >>> --------------------- > >>> > >>> Multiple lower layers can now be given using the colon (":") as a > >>> -separator character between the directory names. For example: > >>> +separator character between the directory names. For example:: > >>> > >>> mount -t overlay overlay -olowerdir=/lower1:/lower2:/lower3 /merged > >>> > >>> @@ -340,13 +340,13 @@ rightmost one and going left. In the above example lower1 will be the > >>> top, lower2 the middle and lower3 the bottom layer. > >>> > >>> Note: directory names containing colons can be provided as lower layer by > >>> -escaping the colons with a single backslash. For example: > >>> +escaping the colons with a single backslash. For example:: > >>> > >>> mount -t overlay overlay -olowerdir=/a\:lower\:\:dir /merged > >>> > >>> Since kernel version v6.8, directory names containing colons can also > >>> be configured as lower layer using the "lowerdir+" mount options and the > >>> -fsconfig syscall from new mount api. For example: > >>> +fsconfig syscall from new mount api. For example:: > >>> > >>> fsconfig(fs_fd, FSCONFIG_SET_STRING, "lowerdir+", "/a:lower::dir", 0); > >>> > >>> @@ -390,11 +390,11 @@ Data-only lower layers > >>> With "metacopy" feature enabled, an overlayfs regular file may be a composition > >>> of information from up to three different layers: > >>> > >>> - 1) metadata from a file in the upper layer > >>> +1) metadata from a file in the upper layer > >>> > >>> - 2) st_ino and st_dev object identifier from a file in a lower layer > >>> +2) st_ino and st_dev object identifier from a file in a lower layer > >>> > >>> - 3) data from a file in another lower layer (further below) > >>> +3) data from a file in another lower layer (further below) > >> > >> Ditto. > >> > >>> > >>> The "lower data" file can be on any lower layer, except from the top most > >>> lower layer. > >>> @@ -405,7 +405,7 @@ A normal lower layer is not allowed to be below a data-only layer, so single > >>> colon separators are not allowed to the right of double colon ("::") separators. > >>> > >>> > >>> -For example: > >>> +For example:: > >>> > >>> mount -t overlay overlay -olowerdir=/l1:/l2:/l3::/do1::/do2 /merged > >>> > >>> @@ -419,7 +419,7 @@ to the absolute path of the "lower data" file in the "data-only" lower layer. > >>> > >>> Since kernel version v6.8, "data-only" lower layers can also be added using > >>> the "datadir+" mount options and the fsconfig syscall from new mount api. > >>> -For example: > >>> +For example:: > >>> > >>> fsconfig(fs_fd, FSCONFIG_SET_STRING, "lowerdir+", "/l1", 0); > >>> fsconfig(fs_fd, FSCONFIG_SET_STRING, "lowerdir+", "/l2", 0); > >>> @@ -429,7 +429,7 @@ For example: > >>> > >>> > >>> fs-verity support > >>> ----------------------- > >>> +----------------- > >>> > >>> During metadata copy up of a lower file, if the source file has > >>> fs-verity enabled and overlay verity support is enabled, then the > >>> @@ -653,9 +653,10 @@ following rules apply: > >>> encode an upper file handle from upper inode > >>> > >>> The encoded overlay file handle includes: > >>> - - Header including path type information (e.g. lower/upper) > >>> - - UUID of the underlying filesystem > >>> - - Underlying filesystem encoding of underlying inode > >>> + > >>> +- Header including path type information (e.g. lower/upper) > >>> +- UUID of the underlying filesystem > >>> +- Underlying filesystem encoding of underlying inode > >> > >> Ditto. > >> > > > > ok, but inconsistent indentation between numbered and bullet list is > > also not nice: > > https://www.kernel.org/doc/html/latest/filesystems/overlayfs.html#nfs-export > > I agree. > > > > > so I kept this indent and I also indented the non-indented numbered lists > > in this section to conform to the rest of the numbered lists in this doc. > > > > I've pushed the fixes to overlayfs-next. > > OK. I'm looking at commit 4552f4b1be08 ("overlayfs.rst: fix ReST formatting"). > > It looks reasonable to me. > If you'd like, feel free to add > > Reviewed-by: Akira Yokosawa <akiyks@gmail.com> > Done. Thanks! Amir. ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2023-12-15 10:32 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-12-13 12:34 [PATCH v2 0/2] Fixes to overlayfs documentation Amir Goldstein 2023-12-13 12:34 ` [PATCH v2 1/2] overlayfs.rst: use consistent feature names Amir Goldstein 2023-12-14 4:52 ` Bagas Sanjaya 2023-12-13 12:34 ` [PATCH v2 2/2] overlayfs.rst: fix ReST formatting Amir Goldstein 2023-12-14 4:53 ` Bagas Sanjaya 2023-12-15 2:07 ` Akira Yokosawa 2023-12-15 8:00 ` Amir Goldstein 2023-12-15 9:31 ` Akira Yokosawa 2023-12-15 10:32 ` Amir Goldstein
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).