Hi again,
On Sun, 9 Nov 2025 18:54:16 +0900, Masaharu Noguchi wrote:
> Sphinx LaTeX builder fails with the following error when it tries to
> turn the ASCII tables in f2fs.rst into nested longtables:
>
> Markup is unsupported in LaTeX:
> filesystems/f2fs:: longtable does not support nesting a table.
>
> Wrap the tables in literal code blocks so that Sphinx renders them as
> verbatim text instead. This prevents the LaTeX builder from attempting
> unsupported table nesting and fixes the pdfdocs build.
>
> Akira Yokosawa pointed out that the in-development Sphinx 8.3 latex
> builder already handles these nested tables. I still want to fix the
> current documentation because Sphinx 8.3 is not released yet, and the
> LaTeX build on the stable 8.2.x series (which also requires
> "docutils<0.22" for now) remains broken without this change.
>
> Link: https://lore.kernel.org/lkml/[email protected]/
> Changes in v2:
> - wrap the compression level table in a literal block and add the
> missing blank lines so docutils no longer warns about malformed
> tables
> - consistently use ``.. code-block:: none`` for the other ASCII tables
> that previously triggered the LaTeX error
>
> Signed-off-by: Masaharu Noguchi <[email protected]>
> ---
> Documentation/filesystems/f2fs.rst | 115 +++++++++++++++--------------
> 1 file changed, 61 insertions(+), 54 deletions(-)
>
> diff --git a/Documentation/filesystems/f2fs.rst
> b/Documentation/filesystems/f2fs.rst
> index a8d02fe5be83..07b8e752476d 100644
> --- a/Documentation/filesystems/f2fs.rst
> +++ b/Documentation/filesystems/f2fs.rst
> @@ -188,34 +188,36 @@ fault_type=%d Support configuring fault
> injection type, should be
> enabled with fault_injection option, fault type value
> is shown below, it supports single or combined type.
>
> - =========================== ==========
> - Type_Name Type_Value
> - =========================== ==========
> - FAULT_KMALLOC 0x00000001
> - FAULT_KVMALLOC 0x00000002
> - FAULT_PAGE_ALLOC 0x00000004
> - FAULT_PAGE_GET 0x00000008
> - FAULT_ALLOC_BIO 0x00000010 (obsolete)
> - FAULT_ALLOC_NID 0x00000020
> - FAULT_ORPHAN 0x00000040
> - FAULT_BLOCK 0x00000080
> - FAULT_DIR_DEPTH 0x00000100
> - FAULT_EVICT_INODE 0x00000200
> - FAULT_TRUNCATE 0x00000400
> - FAULT_READ_IO 0x00000800
> - FAULT_CHECKPOINT 0x00001000
> - FAULT_DISCARD 0x00002000
> - FAULT_WRITE_IO 0x00004000
> - FAULT_SLAB_ALLOC 0x00008000
> - FAULT_DQUOT_INIT 0x00010000
> - FAULT_LOCK_OP 0x00020000
> - FAULT_BLKADDR_VALIDITY 0x00040000
> - FAULT_BLKADDR_CONSISTENCE 0x00080000
> - FAULT_NO_SEGMENT 0x00100000
> - FAULT_INCONSISTENT_FOOTER 0x00200000
> - FAULT_TIMEOUT 0x00400000 (1000ms)
> - FAULT_VMALLOC 0x00800000
> - =========================== ==========
> + .. code-block:: none
> +
> + =========================== ==========
> + Type_Name Type_Value
> + =========================== ==========
> + FAULT_KMALLOC 0x00000001
> + FAULT_KVMALLOC 0x00000002
> + FAULT_PAGE_ALLOC 0x00000004
> + FAULT_PAGE_GET 0x00000008
> + FAULT_ALLOC_BIO 0x00000010
> (obsolete)
> + FAULT_ALLOC_NID 0x00000020
> + FAULT_ORPHAN 0x00000040
> + FAULT_BLOCK 0x00000080
> + FAULT_DIR_DEPTH 0x00000100
> + FAULT_EVICT_INODE 0x00000200
> + FAULT_TRUNCATE 0x00000400
> + FAULT_READ_IO 0x00000800
> + FAULT_CHECKPOINT 0x00001000
> + FAULT_DISCARD 0x00002000
> + FAULT_WRITE_IO 0x00004000
> + FAULT_SLAB_ALLOC 0x00008000
> + FAULT_DQUOT_INIT 0x00010000
> + FAULT_LOCK_OP 0x00020000
> + FAULT_BLKADDR_VALIDITY 0x00040000
> + FAULT_BLKADDR_CONSISTENCE 0x00080000
> + FAULT_NO_SEGMENT 0x00100000
> + FAULT_INCONSISTENT_FOOTER 0x00200000
> + FAULT_TIMEOUT 0x00400000
> (1000ms)
> + FAULT_VMALLOC 0x00800000
> + =========================== ==========
> mode=%s Control block allocation mode which supports
> "adaptive"
> and "lfs". In "lfs" mode, there should be no random
> writes towards main area.
> @@ -296,14 +298,15 @@ nocheckpoint_merge Disable checkpoint merge
> feature.
> compress_algorithm=%s Control compress algorithm, currently f2fs
> supports "lzo",
> "lz4", "zstd" and "lzo-rle" algorithm.
> compress_algorithm=%s:%d Control compress algorithm and its compress level,
> now, only
> - "lz4" and "zstd" support compress level config.
> -
> - ========= ===========
> - algorithm level range
> - ========= ===========
> - lz4 3 - 16
> - zstd 1 - 22
> - ========= ===========
> + "lz4" and "zstd" support compress level config::
> +
> + ========= ===========
> + algorithm level range
> + ========= ===========
> + lz4 3 - 16
> + zstd 1 - 22
> + ========= ===========
> +
> compress_log_size=%u Support configuring compress cluster size. The size
> will
> be 4KB * (1 << %u). The default and minimum sizes are
> 16KB.
> compress_extension=%s Support adding specified extension, so that
> f2fs can enable
> @@ -368,38 +371,42 @@ errors=%s Specify f2fs behavior on
> critical errors. This supports modes:
> the partition in read-only mode. By default it uses
> "continue"
> mode.
>
> - ====================== =============== ===============
> ========
> - mode continue remount-ro
> panic
> - ====================== =============== ===============
> ========
> - access ops normal normal
> N/A
> - syscall errors -EIO -EROFS
> N/A
> - mount option rw ro
> N/A
> - pending dir write keep keep
> N/A
> - pending non-dir write drop keep
> N/A
> - pending node write drop keep
> N/A
> - pending meta write keep keep
> N/A
> - ====================== =============== ===============
> ========
> + .. code-block:: none
> +
> + ====================== ===============
> =============== ========
> + mode continue
> remount-ro panic
> + ====================== ===============
> =============== ========
> + access ops normal normal
> N/A
> + syscall errors -EIO -EROFS
> N/A
> + mount option rw ro
> N/A
> + pending dir write keep keep
> N/A
> + pending non-dir write drop keep
> N/A
> + pending node write drop keep
> N/A
> + pending meta write keep keep
> N/A
> + ====================== ===============
> =============== ========
> nat_bits Enable nat_bits feature to enhance full/empty nat
> blocks access,
> by default it's disabled.
> lookup_mode=%s Control the directory lookup behavior for
> casefolded
> directories. This option has no effect on directories
> that do not have the casefold feature enabled.
>
> - ==================
> ========================================
> - Value Description
> - ==================
> ========================================
> - perf (Default) Enforces a hash-only
> lookup.
> + .. code-block:: none
> +
> + ==================
> ========================================
> + Value Description
> + ==================
> ========================================
> + perf (Default) Enforces a
> hash-only lookup.
> The linear search fallback is always
> disabled, ignoring the on-disk flag.
> - compat Enables the linear search fallback
> for
> + compat Enables the linear search
> fallback for
> compatibility with directory entries
> created by older kernel that used a
> different case-folding algorithm.
> This mode ignores the on-disk flag.
> - auto F2FS determines the mode based on
> the
> + auto F2FS determines the mode
> based on the
> on-disk
> `SB_ENC_NO_COMPAT_FALLBACK_FL`
> flag.
> - ==================
> ========================================
> + ==================
> ========================================
> ========================
> ============================================================
>
> Debugfs Entries
My R-b tag was sent without inspecting the source .rst after the change.
Using TABs inside ASCII tables degrades their readability.
Masaharu, can you consider applying follow-up change below, which replaces
TABs with white spaces except for the leading ones, and submit a v3?
Thanks, Akira
---------8<---------8<---------8<---------8<---------8<---------8<---------8<-------
diff --git a/Documentation/filesystems/f2fs.rst
b/Documentation/filesystems/f2fs.rst
index 07b8e752476d..fbe9f8d35366 100644
--- a/Documentation/filesystems/f2fs.rst
+++ b/Documentation/filesystems/f2fs.rst
@@ -374,15 +374,15 @@ errors=%s Specify f2fs behavior on critical
errors. This supports modes:
.. code-block:: none
====================== ===============
=============== ========
- mode continue
remount-ro panic
+ mode continue remount-ro
panic
====================== ===============
=============== ========
- access ops normal normal
N/A
- syscall errors -EIO -EROFS
N/A
- mount option rw ro
N/A
- pending dir write keep keep
N/A
- pending non-dir write drop keep
N/A
- pending node write drop keep
N/A
- pending meta write keep keep
N/A
+ access ops normal normal
N/A
+ syscall errors -EIO -EROFS
N/A
+ mount option rw ro
N/A
+ pending dir write keep keep
N/A
+ pending non-dir write drop keep
N/A
+ pending node write drop keep
N/A
+ pending meta write keep keep
N/A
====================== ===============
=============== ========
nat_bits Enable nat_bits feature to enhance full/empty nat
blocks access,
by default it's disabled.
@@ -393,19 +393,19 @@ lookup_mode=%s Control the directory lookup
behavior for casefolded
.. code-block:: none
==================
========================================
- Value Description
+ Value Description
==================
========================================
- perf (Default) Enforces a
hash-only lookup.
- The linear search fallback is always
- disabled, ignoring the on-disk flag.
- compat Enables the linear search
fallback for
- compatibility with directory entries
- created by older kernel that used a
- different case-folding algorithm.
- This mode ignores the on-disk flag.
- auto F2FS determines the mode
based on the
- on-disk
`SB_ENC_NO_COMPAT_FALLBACK_FL`
- flag.
+ perf (Default) Enforces a hash-only
lookup.
+ The linear search fallback is
always
+ disabled, ignoring the on-disk
flag.
+ compat Enables the linear search
fallback for
+ compatibility with directory
entries
+ created by older kernel that
used a
+ different case-folding
algorithm.
+ This mode ignores the on-disk
flag.
+ auto F2FS determines the mode based
on the
+ on-disk
`SB_ENC_NO_COMPAT_FALLBACK_FL`
+ flag.
==================
========================================
========================
============================================================
_______________________________________________
Linux-f2fs-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel