summary refs log tree commit diff
diff options
context:
space:
mode:
authorJaegeuk Kim <jaegeuk@kernel.org>2022-11-08 17:59:34 -0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2023-01-04 11:29:01 +0100
commit01bb485730691ccb6e938be22cdf67fc2cd05406 (patch)
tree07ff4a0cdc7301f4a079dd25613031c4546eb9cd
parent6028ec01c4f79af91aa035c970869e630a39fafa (diff)
downloadlinux-01bb485730691ccb6e938be22cdf67fc2cd05406.tar.gz
f2fs: allow to read node block after shutdown
commit e6ecb142429183cef4835f31d4134050ae660032 upstream.

If block address is still alive, we should give a valid node block even after
shutdown. Otherwise, we can see zero data when reading out a file.

Cc: stable@vger.kernel.org
Fixes: 83a3bfdb5a8a ("f2fs: indicate shutdown f2fs to allow unmount successfully")
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--fs/f2fs/node.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c
index 983572f23896..b9ee5a1176a0 100644
--- a/fs/f2fs/node.c
+++ b/fs/f2fs/node.c
@@ -1360,8 +1360,7 @@ static int read_node_page(struct page *page, blk_opf_t op_flags)
 		return err;
 
 	/* 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)) {
+	if (unlikely(ni.blk_addr == NULL_ADDR || ni.blk_addr == NEW_ADDR)) {
 		ClearPageUptodate(page);
 		return -ENOENT;
 	}