diff options
author | Jaegeuk Kim <jaegeuk@kernel.org> | 2017-06-01 15:39:27 -0700 |
---|---|---|
committer | Jaegeuk Kim <jaegeuk@kernel.org> | 2017-07-04 02:11:31 -0700 |
commit | d8c4256c17dac3e9ec0c441b81292d5d2044c89f (patch) | |
tree | bd3ce1eff6a7028eb2b9614e88c4a4fbe8b94529 /fs/f2fs | |
parent | acfd2810c75b0625897fc119a2d3a9c26cc0e405 (diff) | |
download | linux-d8c4256c17dac3e9ec0c441b81292d5d2044c89f.tar.gz linux-d8c4256c17dac3e9ec0c441b81292d5d2044c89f.tar.bz2 linux-d8c4256c17dac3e9ec0c441b81292d5d2044c89f.zip |
f2fs: remove false-positive bug_on
For example,
f2fs_create
- new_node_page is failed
- handle_failed_inode
- skip to add it into orphan list, since ni.blk_addr == NULL_ADDR
: set_inode_flag(inode, FI_FREE_NID)
f2fs_evict_inode
- EIO due to fault injection
- f2fs_bug_on() is triggered
So, we don't need to call f2fs_bug_on in this case.
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Diffstat (limited to 'fs/f2fs')
-rw-r--r-- | fs/f2fs/inode.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/f2fs/inode.c b/fs/f2fs/inode.c index e53c784ab11e..868d71436ebc 100644 --- a/fs/f2fs/inode.c +++ b/fs/f2fs/inode.c @@ -425,9 +425,10 @@ no_delete: if (is_inode_flag_set(inode, FI_FREE_NID)) { alloc_nid_failed(sbi, inode->i_ino); clear_inode_flag(inode, FI_FREE_NID); + } else { + f2fs_bug_on(sbi, err && + !exist_written_data(sbi, inode->i_ino, ORPHAN_INO)); } - f2fs_bug_on(sbi, err && - !exist_written_data(sbi, inode->i_ino, ORPHAN_INO)); out_clear: fscrypt_put_encryption_info(inode, NULL); clear_inode(inode); |