From: Chao Yu chao@kernel.org
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 hch@lst.de Signed-off-by: Chao Yu chao@kernel.org --- fs/f2fs/node.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c index ec74eb9982a5..69308523c34e 100644 --- a/fs/f2fs/node.c +++ b/fs/f2fs/node.c @@ -2092,10 +2092,14 @@ int f2fs_sync_node_pages(struct f2fs_sb_info *sbi,
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;
Hello:
This series was applied to jaegeuk/f2fs.git (dev) by Jaegeuk Kim jaegeuk@kernel.org:
On Thu, 8 May 2025 07:14:27 +0200 you wrote:
From: Chao Yu chao@kernel.org
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
[...]
Here is the summary with links: - [f2fs-dev,1/6] f2fs: fix to return correct error number in f2fs_sync_node_pages() https://git.kernel.org/jaegeuk/f2fs/c/43ba56a043b1 - [f2fs-dev,2/6] f2fs: return bool from __f2fs_write_meta_folio https://git.kernel.org/jaegeuk/f2fs/c/39122e454419 - [f2fs-dev,3/6] f2fs: remove wbc->for_reclaim handling https://git.kernel.org/jaegeuk/f2fs/c/402dd9f02ce4 - [f2fs-dev,4/6] f2fs: always unlock the page in f2fs_write_single_data_page https://git.kernel.org/jaegeuk/f2fs/c/84c5d16711a3 - [f2fs-dev,5/6] f2fs: simplify return value handling in f2fs_fsync_node_pages https://git.kernel.org/jaegeuk/f2fs/c/0638f28b3062 - [f2fs-dev,6/6] f2fs: return bool from __write_node_folio https://git.kernel.org/jaegeuk/f2fs/c/80f31d2a7e5f
You are awesome, thank you!
linux-stable-mirror@lists.linaro.org