Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8c1b3c0f authored by Jaegeuk Kim's avatar Jaegeuk Kim
Browse files

f2fs: fix wrong error injection for evict_inode



The previous one was not a proper location to inject an error, since there
is no point to get errors. Instead, we can emulate EIO during truncation,
and the below logic should handle it correctly.

Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
parent 10047f53
Loading
Loading
Loading
Loading
+6 −7
Original line number Diff line number Diff line
@@ -372,13 +372,6 @@ void f2fs_evict_inode(struct inode *inode)
	if (inode->i_nlink || is_bad_inode(inode))
		goto no_delete;

#ifdef CONFIG_F2FS_FAULT_INJECTION
	if (time_to_inject(sbi, FAULT_EVICT_INODE)) {
		f2fs_show_injection_info(FAULT_EVICT_INODE);
		goto no_delete;
	}
#endif

	remove_ino_entry(sbi, inode->i_ino, APPEND_INO);
	remove_ino_entry(sbi, inode->i_ino, UPDATE_INO);

@@ -389,6 +382,12 @@ void f2fs_evict_inode(struct inode *inode)
	if (F2FS_HAS_BLOCKS(inode))
		err = f2fs_truncate(inode);

#ifdef CONFIG_F2FS_FAULT_INJECTION
	if (time_to_inject(sbi, FAULT_EVICT_INODE)) {
		f2fs_show_injection_info(FAULT_EVICT_INODE);
		err = -EIO;
	}
#endif
	if (!err) {
		f2fs_lock_op(sbi);
		err = remove_inode_page(inode);