From: Christoph Hellwig Date: Wed, 7 May 2025 04:48:52 +0000 (+0200) Subject: nfs: don't return AOP_WRITEPAGE_ACTIVATE from nfs_do_writepage X-Git-Tag: v6.16-rc1~54^2~17 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=66beed5acaf27137007459e7e53bf8d6f1b799cc;p=thirdparty%2Fkernel%2Flinux.git nfs: don't return AOP_WRITEPAGE_ACTIVATE from nfs_do_writepage nfs_do_writepage is a successful return that requires the caller to unlock the folio. Using it here requires special casing both in nfs_do_writepage and nfs_writepages_callback and leaves a land mine in nfs_wb_folio in case it ever set the flag. Remove it and just unconditionally unlock in nfs_writepages_callback. Signed-off-by: Christoph Hellwig Signed-off-by: Anna Schumaker --- diff --git a/fs/nfs/write.c b/fs/nfs/write.c index 148e773c36650..4e1d57b63a85d 100644 --- a/fs/nfs/write.c +++ b/fs/nfs/write.c @@ -663,8 +663,6 @@ static int nfs_do_writepage(struct folio *folio, struct writeback_control *wbc, */ if (nfs_error_is_fatal_on_server(ret)) goto out_launder; - if (wbc->sync_mode == WB_SYNC_NONE) - ret = AOP_WRITEPAGE_ACTIVATE; folio_redirty_for_writepage(wbc, folio); nfs_redirty_request(req); pgio->pg_error = 0; @@ -703,8 +701,7 @@ static int nfs_writepages_callback(struct folio *folio, int ret; ret = nfs_do_writepage(folio, wbc, data); - if (ret != AOP_WRITEPAGE_ACTIVATE) - folio_unlock(folio); + folio_unlock(folio); return ret; }