linux/fs/f2fs
Eric Biggers 3c0315424f f2fs: fix error handling in f2fs_end_enable_verity()
f2fs didn't properly clean up if verity failed to be enabled on a file:

- It left verity metadata (pages past EOF) in the page cache, which
  would be exposed to userspace if the file was later extended.

- It didn't truncate the verity metadata at all (either from cache or
  from disk) if an error occurred while setting the verity bit.

Fix these bugs by adding a call to truncate_inode_pages() and ensuring
that we truncate the verity metadata (both from cache and from disk) in
all error paths.  Also rework the code to cleanly separate the success
path from the error paths, which makes it much easier to understand.

Finally, log a message if f2fs_truncate() fails, since it might
otherwise fail silently.

Reported-by: Yunlei He <heyunlei@hihonor.com>
Fixes: 95ae251fe8 ("f2fs: add fs-verity support")
Cc: <stable@vger.kernel.org> # v5.4+
Signed-off-by: Eric Biggers <ebiggers@google.com>
Reviewed-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2021-03-12 13:16:44 -08:00
..
acl.c idmapped-mounts-v5.12 2021-02-23 13:39:45 -08:00
acl.h fs: make helpers idmap mount aware 2021-01-24 14:27:20 +01:00
checkpoint.c f2fs: update comments for explicit memory barrier 2021-03-12 13:16:42 -08:00
compress.c f2fs: compress: fix potential deadlock 2021-01-27 15:20:05 -08:00
compress.h f2fs: compress: fix compression chksum 2020-12-10 09:13:53 -08:00
data.c f2fs: check if swapfile is section-alligned 2021-03-12 13:16:43 -08:00
debug.c f2fs: introduce checkpoint_merge mount option 2021-02-03 13:03:06 -08:00
dir.c f2fs-for-5.11-rc1 2020-12-17 11:18:00 -08: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 unused file_clear_encrypt() 2021-03-12 13:16:43 -08:00
file.c f2fs: fix to allow migrating fully valid segment 2021-03-12 13:16:41 -08:00
gc.c f2fs: fix panic during f2fs_resize_fs() 2021-03-12 13:16:41 -08:00
gc.h f2fs: support age threshold based garbage collection 2020-09-11 11:11:15 -07:00
hash.c f2fs: Handle casefolding with Encryption 2020-12-02 22:00:21 -08:00
inline.c f2fs: fix a redundant call to f2fs_balance_fs if an error occurs 2021-03-12 13:16:44 -08:00
inode.c f2fs: compress: support chksum 2020-12-02 22:00:22 -08: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 idmapped-mounts-v5.12 2021-02-23 13:39:45 -08:00
node.c block: Add bio_max_segs 2021-02-26 15:49:51 -07:00
node.h f2fs: avoid race condition for shrinker count 2020-12-03 00:59:26 -08:00
recovery.c f2fs: change to use rwsem for cp_mutex 2020-12-02 22:00:21 -08:00
segment.c f2fs: check discard command number before traversing discard pending list 2021-03-12 13:16:42 -08:00
segment.h f2fs: remove unused FORCE_FG_GC macro 2021-03-12 13:16:42 -08:00
shrinker.c f2fs: avoid race condition for shrinker count 2020-12-03 00:59:26 -08:00
super.c f2fs: avoid unused f2fs_show_compress_options() 2021-03-12 13:16:41 -08:00
sysfs.c f2fs: add ckpt_thread_ioprio sysfs node 2021-02-03 13:03:58 -08:00
verity.c f2fs: fix error handling in f2fs_end_enable_verity() 2021-03-12 13:16:44 -08:00
xattr.c idmapped-mounts-v5.12 2021-02-23 13:39:45 -08:00
xattr.h f2fs: code cleanup by removing ifdef macro surrounding 2020-05-26 18:56:10 -07:00