diff options
author | Jaegeuk Kim <jaegeuk@kernel.org> | 2021-07-26 09:12:15 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2021-09-18 13:43:27 +0200 |
commit | 296bb8c3314b9de714ad0056ed1b9445f450cb83 (patch) | |
tree | fc18252fb12f69b1203191986118107fe60b32e0 /fs/f2fs | |
parent | 2fb576caf06a23aa45299ee028cca856b4a0b25d (diff) |
f2fs: do not submit NEW_ADDR to read node block
[ Upstream commit b7ec2061737f12c33e45beeb967d17f31abc1ada ]
After the below patch, give cp is errored, we drop dirty node pages. This
can give NEW_ADDR to read node pages. Don't do WARN_ON() which gives
generic/475 failure.
Fixes: 28607bf3aa6f ("f2fs: drop dirty node pages when cp is in error status")
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'fs/f2fs')
-rw-r--r-- | fs/f2fs/node.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c index 0be9e2d7120e..1b0fe6e64b7d 100644 --- a/fs/f2fs/node.c +++ b/fs/f2fs/node.c @@ -1321,7 +1321,8 @@ static int read_node_page(struct page *page, int op_flags) if (err) return err; - if (unlikely(ni.blk_addr == NULL_ADDR) || + /* NEW_ADDR can be seen, after cp_error drops some dirty node pages */ + if (unlikely(ni.blk_addr == NULL_ADDR || ni.blk_addr == NEW_ADDR) || is_sbi_flag_set(sbi, SBI_IS_SHUTDOWN)) { ClearPageUptodate(page); return -ENOENT; |