PT-2026-51911 · Linux · Linux
Published
2026-06-24
·
Updated
2026-06-24
·
CVE-2026-53017
None
No severity ratings or metrics are available. When they are, we'll update the corresponding info on the page.
In the Linux kernel, the following vulnerability has been resolved:
f2fs: fix data loss caused by incorrect use of nat entry flag
Data loss can occur when fsync is performed on a newly created file
(before any checkpoint has been written) concurrently with a checkpoint
operation. The scenario is as follows:
create & write & fsync 'file A' write checkpoint
- f2fs do sync file // inline inode
- f2fs write inode // inode folio is dirty - f2fs write checkpoint - f2fs flush merged writes - f2fs sync node pages - f2fs flush nat entries
- f2fs fsync node pages // no dirty node
- f2fs need inode block update // return false SPO and lost 'file A'
f2fs flush nat entries() sets the IS CHECKPOINTED and HAS LAST FSYNC
flags for the nat entry, but this does not mean that the checkpoint has
actually completed successfully. However, f2fs need inode block update()
checks these flags and incorrectly assumes that the checkpoint has
finished.
The root cause is that the semantics of IS CHECKPOINTED and
HAS LAST FSYNC are only guaranteed after the checkpoint write fully
completes.
This patch modifies f2fs need inode block update() to acquire the
sbi->node write lock before reading the nat entry flags, ensuring that
once IS CHECKPOINTED and HAS LAST FSYNC are observed to be set, the
checkpoint operation has already completed.
Found an issue in the description? Have something to add? Feel free to write us 👾
Related Identifiers
Affected Products
Linux