]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
nfs: refactor nfs_do_writepage
authorChristoph Hellwig <hch@lst.de>
Wed, 7 May 2025 04:48:53 +0000 (06:48 +0200)
committerAnna Schumaker <anna.schumaker@oracle.com>
Wed, 28 May 2025 21:17:13 +0000 (17:17 -0400)
Use early returns wherever possible to simplify the code.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Anna Schumaker <anna.schumaker@oracle.com>
fs/nfs/write.c

index 4e1d57b63a85d1b98d1e14b88b6d11d8d014c209..68c5dc061abe92fda50bec09cf8ca9119c333dd7 100644 (file)
@@ -636,16 +636,15 @@ static int nfs_do_writepage(struct folio *folio, struct writeback_control *wbc,
                struct nfs_pageio_descriptor *pgio)
 {
        struct nfs_page *req;
-       int ret = 0;
+       int ret;
 
        nfs_pageio_cond_complete(pgio, folio->index);
 
        req = nfs_lock_and_join_requests(folio);
        if (!req)
-               goto out;
-       ret = PTR_ERR(req);
+               return 0;
        if (IS_ERR(req))
-               goto out;
+               return PTR_ERR(req);
 
        nfs_folio_set_writeback(folio);
        WARN_ON_ONCE(test_bit(PG_CLEAN, &req->wb_flags));
@@ -655,7 +654,6 @@ static int nfs_do_writepage(struct folio *folio, struct writeback_control *wbc,
        if (nfs_error_is_fatal_on_server(ret))
                goto out_launder;
 
-       ret = 0;
        if (!nfs_pageio_add_request(pgio, req)) {
                ret = pgio->pg_error;
                /*
@@ -666,11 +664,12 @@ static int nfs_do_writepage(struct folio *folio, struct writeback_control *wbc,
                folio_redirty_for_writepage(wbc, folio);
                nfs_redirty_request(req);
                pgio->pg_error = 0;
-       } else
-               nfs_add_stats(folio->mapping->host,
-                             NFSIOS_WRITEPAGES, 1);
-out:
-       return ret;
+               return ret;
+       }
+
+       nfs_add_stats(folio->mapping->host, NFSIOS_WRITEPAGES, 1);
+       return 0;
+
 out_launder:
        nfs_write_error(req, ret);
        return 0;