linux/Documentation/filesystems
Fei Lv 1f6ee9be92 ovl: make fsync after metadata copy-up opt-in mount option
Commit 7d6899fb69 ("ovl: fsync after metadata copy-up") was done to
fix durability of overlayfs copy up on an upper filesystem which does
not enforce ordering on storing of metadata changes (e.g. ubifs).

In an earlier revision of the regressing commit by Lei Lv, the metadata
fsync behavior was opt-in via a new "fsync=strict" mount option.
We were hoping that the opt-in mount option could be avoided, so the
change was only made to depend on metacopy=off, in the hope of not
hurting performance of metadata heavy workloads, which are more likely
to be using metacopy=on.

This hope was proven wrong by a performance regression report from Google
COS workload after upgrade to kernel 6.12.

This is an adaptation of Lei's original "fsync=strict" mount option
to the existing upstream code.

The new mount option is mutually exclusive with the "volatile" mount
option, so the latter is now an alias to the "fsync=volatile" mount
option.

Reported-by: Chenglong Tang <chenglongtang@google.com>
Closes: https://lore.kernel.org/linux-unionfs/CAOdxtTadAFH01Vui1FvWfcmQ8jH1O45owTzUcpYbNvBxnLeM7Q@mail.gmail.com/
Link: https://lore.kernel.org/linux-unionfs/CAOQ4uxgKC1SgjMWre=fUb00v8rxtd6sQi-S+dxR8oDzAuiGu8g@mail.gmail.com/
Fixes: 7d6899fb69 ("ovl: fsync after metadata copy-up")
Depends: 50e638beb6 ("ovl: Use str_on_off() helper in ovl_show_options()")
Cc: stable@vger.kernel.org # v6.12+
Signed-off-by: Fei Lv <feilv@asrmicro.com>
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
2026-03-27 12:48:10 +01:00
..
caching doc: correcting the debug path for cachefiles 2024-10-24 13:50:27 +02:00
ext4 Documentation: ext4: Document casefold and encrypt flags 2025-11-26 17:13:34 -05:00
fuse Documentation: fuse: Consolidate FUSE docs into its own subdirectory 2025-08-27 14:29:43 +02:00
gfs2 Documentation: gfs2: Consolidate GFS2 docs into its own subdirectory 2025-10-31 21:00:43 +00:00
iomap fs, iomap: remove IOCB_DIO_CALLER_COMP 2025-11-25 10:22:18 +01:00
nfs docs: exportfs: Use source code struct documentation 2026-01-14 16:50:37 +01:00
smb cifs: add documentation for smbdirect setup 2025-06-05 10:20:48 -05:00
spufs docs: spufs: fix ppc64 architecture line break 2026-01-06 15:21:26 -07:00
xfs xfs: new code for v6.19 2025-12-03 20:19:38 -08:00
9p.rst 9p update for 6.15-rc1 2025-04-03 15:35:46 -07:00
adfs.rst
affs.rst
afs.rst afs: Documentation: correct reference to CONFIG_AFS_FS 2023-07-21 13:46:02 -06:00
api-summary.rst docs: filesystems: add fs/open.c to api-summary 2026-01-16 11:33:15 -07:00
autofs-mount-control.rst autofs: use flexible array in ioctl structure 2023-05-30 16:42:00 -07:00
autofs.rst Documentation: filesystems: update filename extensions 2024-11-22 10:31:04 -07:00
automount-support.rst
befs.rst Documentation: Fix typos 2023-08-18 11:29:03 -06:00
bfs.rst
btrfs.rst MAINTAINERS: remove links to obsolete btrfs.wiki.kernel.org 2023-09-08 14:21:27 +02:00
buffer.rst doc: split buffer.rst out of api-summary.rst 2024-05-05 17:53:40 -07:00
ceph.rst doc: ceph: update userspace command to get CephFS metadata 2024-05-23 10:35:47 +02:00
coda.rst documentation/filesystems: fix spelling mistakes 2025-02-10 10:42:28 -07:00
configfs.rst Documentation: Fix typos 2023-08-18 11:29:03 -06:00
cramfs.rst
dax.rst doc: Remove misleading reference to brd in dax.rst 2025-06-25 12:49:29 -06:00
debugfs.rst docs: debugfs: do not recommend debugfs_remove_recursive 2025-04-30 19:11:04 +02:00
devpts.rst Documentation: Fix typos 2023-08-18 11:29:03 -06:00
directory-locking.rst Docs: typos/spelling 2024-05-02 10:02:29 -06:00
dlmfs.rst Documentation: filesystems: update filename extensions 2024-11-22 10:31:04 -07:00
dnotify.rst
ecryptfs.rst
efivarfs.rst Documentation: Mark the 'efivars' sysfs interface as removed 2024-04-13 10:33:02 +02:00
erofs.rst A slightly calmer cycle for docs this time around, though there is still a 2026-02-09 20:53:18 -08:00
ext2.rst doc : fix a broken link in ext2.rst 2025-12-19 15:01:27 +01:00
ext3.rst
f2fs.rst f2fs: introduce FAULT_SKIP_WRITE 2026-01-27 02:45:58 +00:00
fiemap.rst fiemap: use kernel-doc includes in fiemap docbook 2024-12-22 11:29:50 +01:00
files.rst docs: filesystems: fix typo in docs 2024-02-09 10:37:20 +01:00
fscrypt.rst fscrypt: Drop obsolete recommendation to enable optimized NHPoly1305 2026-01-12 11:07:50 -08:00
fsverity.rst fs: add FS_XFLAG_VERITY for fs-verity files 2026-01-29 16:00:57 +01:00
hfs.rst
hfsplus.rst
hpfs.rst Documentation: Fix filesystems typos 2025-08-18 10:31:19 -06:00
idmappings.rst doc: correcting two prefix errors in idmappings.rst 2025-03-05 11:54:18 +01:00
index.rst Documentation: gfs2: Consolidate GFS2 docs into its own subdirectory 2025-10-31 21:00:43 +00:00
inotify.rst
isofs.rst
journalling.rst jbd2: remove unused transaction->t_private_list 2025-02-10 07:48:24 -05:00
locking.rst vfs-7.0-rc1.namespace 2026-02-09 14:43:47 -08:00
locks.rst
mount_api.rst fs: Remove internal old mount API code 2025-12-15 14:48:33 +01:00
multigrain-ts.rst Documentation: add a new file documenting multigrain timestamps 2024-10-10 10:20:52 +02:00
netfs_library.rst fs/netfs: remove unused flag NETFS_SREQ_SEEK_DATA_READ 2025-05-21 14:34:37 +02:00
nilfs2.rst Documentation: Fix typos 2023-08-18 11:29:03 -06:00
ntfs3.rst Documentation: Fix typos 2023-08-18 11:29:03 -06:00
ocfs2-online-filecheck.rst Documentation: ocfs2: Properly reindent filecheck operations list 2025-08-29 15:50:50 -06:00
ocfs2.rst docs: update ocfs2-devel mailing list address 2023-07-08 09:29:29 -07:00
omfs.rst
orangefs.rst Documentation: Fix typos 2023-08-18 11:29:03 -06:00
overlayfs.rst ovl: make fsync after metadata copy-up opt-in mount option 2026-03-27 12:48:10 +01:00
path-lookup.rst Documentation: filesystems: update filename extensions 2024-11-22 10:31:04 -07:00
path-lookup.txt Documentation: filesystems: update filename extensions 2024-11-22 10:31:04 -07:00
porting.rst vfs-7.0-rc1.misc.2 2026-02-16 13:00:36 -08:00
proc.rst docs: filesystems: ensure proc pid substitutable is complete 2026-02-02 09:49:03 -07:00
propagate_umount.txt docs: fix trailing whitespace error and remove repeated words in propagate_umount.txt 2025-08-21 12:49:01 -06:00
qnx6.rst Documentation: Fix typos 2023-08-18 11:29:03 -06:00
quota.rst
ramfs-rootfs-initramfs.rst fs: use nullfs unconditionally as the real rootfs 2026-01-14 11:23:39 +01:00
relay.rst docs: fix 're-use' -> 'reuse' in documentation 2026-02-02 09:54:15 -07:00
resctrl.rst - Extend the resctrl machinery to support telemetry monitoring on Intel. The 2026-02-10 18:24:56 -08:00
romfs.rst
seq_file.rst Documentation: Fix typos 2023-08-18 11:29:03 -06:00
sharedsubtree.rst Documentation: sharedsubtree: Convert notes to note directive 2025-08-29 16:40:01 -06:00
splice.rst
squashfs.rst Documentation: update the Squashfs filesystem documentation 2025-01-24 22:47:21 -08:00
sysfs.rst kernel.h: move VERIFY_OCTAL_PERMISSIONS() to sysfs.h 2026-01-31 16:16:05 -08:00
tmpfs.rst docs: tmpfs: Add casefold options 2024-10-28 13:36:55 +01:00
ubifs-authentication.rst Documentation: treewide: Replace remaining spinics links with lore 2025-06-21 14:20:51 -06:00
ubifs.rst Documentation: ubifs: Fix compression idiom 2022-10-10 13:01:10 -06:00
udf.rst
vfat.rst Documentation: Fix typos 2023-08-18 11:29:03 -06:00
vfs.rst vfs-7.0-rc1.namespace 2026-02-09 14:43:47 -08:00
virtiofs.rst
zonefs.rst Documentation: Fix typos 2023-08-18 11:29:03 -06:00