linux/fs/f2fs
Yunlong Song 0c9df7fb80 f2fs: return the errno to the caller to avoid using a wrong page
Commit aaf9607516 ("f2fs: check node page
contents all the time") pointed out that "sometimes it was reported that
its contents was missing", so it checks the page's mapping and contents.
When "nid != nid_of_node(page)", ERR_PTR(-EIO) will be returned to the
caller. However, commit e1c51b9f1d ("f2fs:
clean up node page updating flow") moves "nid != nid_of_node(page)" test
to "f2fs_bug_on(sbi, nid != nid_of_node(page))", this will return a
wrong page to the caller when F2FS_CHECK_FS is off when "sometimes it
was reported that its contents was missing" happens.

This patch restores to check node page contents all the time, and
returns the errno to make the caller known something is wrong and avoid
to use the page. This patch also moves f2fs_bug_on to its proper location.

Signed-off-by: Yunlong Song <yunlong.song@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2016-06-02 18:05:22 -07:00
..
acl.c f2fs: call mark_inode_dirty_sync for i_field changes 2016-06-02 18:05:11 -07:00
acl.h f2fs: avoid deadlock on init_inode_metadata 2014-11-03 16:07:33 -08:00
checkpoint.c f2fs: flush inode metadata when checkpoint is doing 2016-06-02 18:05:11 -07:00
data.c f2fs: remove two steps to flush dirty data pages 2016-06-02 18:05:21 -07:00
debug.c f2fs: flush inode metadata when checkpoint is doing 2016-06-02 18:05:11 -07:00
dir.c f2fs: propagate error given by f2fs_find_entry 2016-06-02 18:05:18 -07:00
extent_cache.c f2fs: remove syncing inode page in all the cases 2016-06-02 18:05:12 -07:00
f2fs.h f2fs: inject to produce some orphan inodes 2016-06-02 18:05:19 -07:00
file.c f2fs: avoid unnecessary updating inode during fsync 2016-06-02 18:05:13 -07:00
gc.c f2fs: use inode pointer for {set, clear}_inode_flag 2016-06-02 18:05:07 -07:00
gc.h f2fs: detect idle time depending on user behavior 2016-01-11 15:56:37 -08:00
hash.c f2fs: introduce dot and dotdot name check 2015-05-28 15:41:34 -07:00
inline.c f2fs: propagate error given by f2fs_find_entry 2016-06-02 18:05:18 -07:00
inode.c f2fs: inject to produce some orphan inodes 2016-06-02 18:05:19 -07:00
Kconfig f2fs: add mount option to select fault injection ratio 2016-05-07 10:32:22 -07:00
Makefile fs crypto: move per-file encryption from f2fs tree to fs/crypto 2016-03-17 21:19:33 -07:00
namei.c f2fs: propagate error given by f2fs_find_entry 2016-06-02 18:05:18 -07:00
node.c f2fs: return the errno to the caller to avoid using a wrong page 2016-06-02 18:05:22 -07:00
node.h f2fs: use wait_for_stable_page to avoid contention 2016-02-22 16:07:23 -08:00
recovery.c f2fs: avoid unnecessary updating inode during fsync 2016-06-02 18:05:13 -07:00
segment.c f2fs: detect congestion of flush command issues 2016-06-02 18:05:15 -07:00
segment.h f2fs: do not skip writing data pages 2016-06-02 18:05:20 -07:00
shrinker.c f2fs: speed up shrinking extent tree entries 2015-12-30 10:13:00 -08:00
super.c f2fs: inject to produce some orphan inodes 2016-06-02 18:05:19 -07:00
trace.c f2fs: trace old block address for CoWed page 2016-02-22 21:40:02 -08:00
trace.h f2fs: add sbi and page pointer in f2fs_io_info 2015-05-28 15:41:32 -07:00
xattr.c f2fs: remove syncing inode page in all the cases 2016-06-02 18:05:12 -07:00
xattr.h f2fs: add missing argument to f2fs_setxattr stub 2016-03-17 21:19:47 -07:00