linux/fs/f2fs
Shin'ichiro Kawasaki d508c94e45 f2fs: Check write pointer consistency of non-open zones
To catch f2fs bugs in write pointer handling code for zoned block
devices, check write pointers of non-open zones that current segments do
not point to. Do this check at mount time, after the fsync data recovery
and current segments' write pointer consistency fix. Or when fsync data
recovery is disabled by mount option, do the check when there is no fsync
data.

Check two items comparing write pointers with valid block maps in SIT.
The first item is check for zones with no valid blocks. When there is no
valid blocks in a zone, the write pointer should be at the start of the
zone. If not, next write operation to the zone will cause unaligned write
error. If write pointer is not at the zone start, reset the write pointer
to place at the zone start.

The second item is check between the write pointer position and the last
valid block in the zone. It is unexpected that the last valid block
position is beyond the write pointer. In such a case, report as a bug.
Fix is not required for such zone, because the zone is not selected for
next write operation until the zone get discarded.

Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
Reviewed-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2020-01-15 13:43:48 -08:00
..
acl.c f2fs: Replace spaces with tab 2019-05-08 21:23:11 -07:00
acl.h f2fs: add SPDX license identifiers 2018-09-12 13:07:10 -07:00
checkpoint.c f2fs: show f2fs instance in printk_ratelimited 2019-11-19 14:41:21 -08:00
data.c f2fs: keep quota data on write_begin failure 2019-12-12 13:24:34 -08:00
debug.c fs: f2fs: Remove unnecessary checks of SM_I(sbi) in update_general_status() 2019-08-23 07:57:12 -07:00
dir.c f2fs: show f2fs instance in printk_ratelimited 2019-11-19 14:41:21 -08:00
extent_cache.c f2fs: introduce f2fs_<level> macros to wrap f2fs_printk() 2019-07-02 15:40:40 -07:00
f2fs.h f2fs: Check write pointer consistency of non-open zones 2020-01-15 13:43:48 -08:00
file.c f2fs: should avoid recursive filesystem ops 2019-12-12 13:24:34 -08:00
gc.c f2fs: stop GC when the victim becomes fully valid 2019-11-25 10:01:28 -08:00
gc.h f2fs: add SPDX license identifiers 2018-09-12 13:07:10 -07:00
hash.c f2fs: Support case-insensitive file name lookups 2019-08-23 07:57:13 -07:00
inline.c f2fs: set GFP_NOFS when moving inline dentries 2019-12-12 13:24:34 -08:00
inode.c f2fs: show f2fs instance in printk_ratelimited 2019-11-19 14:41:21 -08:00
Kconfig f2fs: Add a small clarification to CONFIG_FS_F2FS_FS_SECURITY 2019-09-16 08:38:48 -07:00
Makefile f2fs: add fs-verity support 2019-08-12 19:33:51 -07:00
namei.c f2fs: fix to update dir's i_pino during cross_rename 2019-11-07 11:15:39 -08:00
node.c f2fs: show f2fs instance in printk_ratelimited 2019-11-19 14:41:21 -08:00
node.h f2fs: check PageWriteback flag for ordered case 2018-12-26 15:16:56 -08:00
recovery.c f2fs: Check write pointer consistency of open zones 2020-01-15 13:42:14 -08:00
segment.c f2fs: Check write pointer consistency of non-open zones 2020-01-15 13:43:48 -08:00
segment.h f2fs: support aligned pinned file 2019-11-07 10:40:59 -08:00
shrinker.c f2fs: fix sbi->extent_list corruption issue 2018-12-26 15:16:54 -08:00
super.c f2fs: Check write pointer consistency of non-open zones 2020-01-15 13:43:48 -08:00
sysfs.c f2fs: expose main_blkaddr in sysfs 2019-11-25 10:01:27 -08:00
trace.c f2fs: do not use mutex lock in atomic context 2019-03-05 19:58:06 -08:00
trace.h f2fs: add SPDX license identifiers 2018-09-12 13:07:10 -07:00
verity.c f2fs: add fs-verity support 2019-08-12 19:33:51 -07:00
xattr.c f2fs: fix to avoid memory leakage in f2fs_listxattr 2019-10-22 10:32:42 -07:00
xattr.h f2fs: add fs-verity support 2019-08-12 19:33:51 -07:00