From: Chao Yu Date: Thu, 8 May 2025 05:14:27 +0000 (+0200) Subject: f2fs: fix to return correct error number in f2fs_sync_node_pages() X-Git-Tag: v6.16-rc1~115^2~19 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=43ba56a043b14426ca9ecac875ab357e32cb595e;p=thirdparty%2Fkernel%2Flinux.git f2fs: fix to return correct error number in f2fs_sync_node_pages() If __write_node_folio() failed, it will return AOP_WRITEPAGE_ACTIVATE, the incorrect return value may be passed to userspace in below path, fix it. - sync_filesystem - sync_fs - f2fs_issue_checkpoint - block_operations - f2fs_sync_node_pages - __write_node_folio : return AOP_WRITEPAGE_ACTIVATE Cc: stable@vger.kernel.org Reported-by: Christoph Hellwig Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim --- diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c index ec74eb9982a53..69308523c34e5 100644 --- a/fs/f2fs/node.c +++ b/fs/f2fs/node.c @@ -2092,10 +2092,14 @@ write_node: ret = __write_node_folio(folio, false, &submitted, wbc, do_balance, io_type, NULL); - if (ret) + if (ret) { folio_unlock(folio); - else if (submitted) + folio_batch_release(&fbatch); + ret = -EIO; + goto out; + } else if (submitted) { nwritten++; + } if (--wbc->nr_to_write == 0) break;