2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-29 07:34:06 +08:00
linux-next/fs/f2fs
Chao Yu 2787991516 f2fs: fix to force keeping write barrier for strict fsync mode
[1] https://www.mail-archive.com/linux-f2fs-devel@lists.sourceforge.net/msg15126.html

As [1] reported, if lower device doesn't support write barrier, in below
case:

- write page #0; persist
- overwrite page #0
- fsync
 - write data page #0 OPU into device's cache
 - write inode page into device's cache
 - issue flush

If SPO is triggered during flush command, inode page can be persisted
before data page #0, so that after recovery, inode page can be recovered
with new physical block address of data page #0, however there may
contains dummy data in new physical block address.

Then what user will see is: after overwrite & fsync + SPO, old data in
file was corrupted, if any user do care about such case, we can suggest
user to use STRICT fsync mode, in this mode, we will force to use atomic
write sematics to keep write order in between data/node and last node,
so that it avoids potential data corruption during fsync().

Signed-off-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2021-08-02 11:24:26 -07:00
..
acl.c f2fs: clean up build warnings 2021-04-10 10:36:39 -07:00
acl.h fs: make helpers idmap mount aware 2021-01-24 14:27:20 +01:00
checkpoint.c f2fs: restructure f2fs page.private layout 2021-05-14 11:22:08 -07:00
compress.c f2fs: compress: add compress_inode to cache compressed blocks 2021-06-23 01:09:35 -07:00
data.c f2fs: turn back remapped address in compressed page endio 2021-08-02 11:24:25 -07:00
debug.c f2fs: show sbi status in debugfs/f2fs/status 2021-08-02 11:24:26 -07:00
dir.c f2fs: introduce f2fs_casefolded_name slab cache 2021-06-23 01:09:35 -07:00
extent_cache.c f2fs: support 64-bits key in f2fs rb-tree node entry 2020-09-10 14:03:30 -07:00
f2fs.h f2fs: remove allow_outplace_dio() 2021-07-25 08:42:37 -07:00
file.c f2fs: fix to force keeping write barrier for strict fsync mode 2021-08-02 11:24:26 -07:00
gc.c f2fs: Revert "f2fs: Fix indefinite loop in f2fs_gc() v1" 2021-07-19 11:54:48 -07:00
gc.h f2fs: introduce gc_merge mount option 2021-03-30 18:48:56 -07:00
hash.c f2fs: Handle casefolding with Encryption 2020-12-02 22:00:21 -08:00
inline.c f2fs: restructure f2fs page.private layout 2021-05-14 11:22:08 -07:00
inode.c f2fs: compress: add compress_inode to cache compressed blocks 2021-06-23 01:09:35 -07:00
Kconfig f2fs: compress: Allow modular (de)compression algorithms 2021-03-12 13:16:42 -08:00
Makefile f2fs: deprecate f2fs_trace_io 2021-01-27 15:20:07 -08:00
namei.c f2fs: compress: add nocompress extensions support 2021-07-01 18:34:31 -07:00
node.c f2fs: do not submit NEW_ADDR to read node block 2021-08-02 11:24:25 -07:00
node.h f2fs: swap: support migrating swapfile in aligned write mode 2021-06-23 01:09:35 -07:00
recovery.c f2fs: introduce f2fs_casefolded_name slab cache 2021-06-23 01:09:35 -07:00
segment.c f2fs: let's keep writing IOs on SBI_NEED_FSCK 2021-07-19 18:16:40 -07:00
segment.h f2fs-for-5.13-rc1 2021-05-04 18:03:38 -07:00
shrinker.c f2fs: avoid race condition for shrinker count 2020-12-03 00:59:26 -08:00
super.c f2fs: fix wrong checkpoint_changed value in f2fs_remount() 2021-08-02 11:24:26 -07:00
sysfs.c f2fs: avoid to create an empty string as the extension_list 2021-07-13 16:11:08 -07:00
verity.c f2fs-for-5.13-rc1 2021-05-04 18:03:38 -07:00
xattr.c f2fs: clean up build warnings 2021-04-10 10:36:39 -07:00
xattr.h f2fs: code cleanup by removing ifdef macro surrounding 2020-05-26 18:56:10 -07:00