]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
nfs: add tracepoints to nfs_writepages()
authorJeff Layton <jlayton@kernel.org>
Fri, 8 Aug 2025 11:40:34 +0000 (07:40 -0400)
committerAnna Schumaker <anna.schumaker@oracle.com>
Tue, 23 Sep 2025 17:28:19 +0000 (13:28 -0400)
Show the inode info and requested range.

Signed-off-by: Jeff Layton <jlayton@kernel.org>
Reviewed-by: Benjamin Coddington <bcodding@redhat.com>
Signed-off-by: Anna Schumaker <anna.schumaker@oracle.com>
fs/nfs/nfstrace.h
fs/nfs/write.c

index 2e21b2ad9458041705189c86c1982fa857941c90..4c935652cfd447a8fdd8e1a3f085be14c0ad94bd 100644 (file)
@@ -1080,6 +1080,8 @@ DEFINE_NFS_FOLIO_EVENT_DONE(nfs_write_begin_done);
 DEFINE_NFS_FOLIO_EVENT(nfs_write_end);
 DEFINE_NFS_FOLIO_EVENT_DONE(nfs_write_end_done);
 
+DEFINE_NFS_FOLIO_EVENT(nfs_writepages);
+DEFINE_NFS_FOLIO_EVENT_DONE(nfs_writepages_done);
 
 DECLARE_EVENT_CLASS(nfs_kiocb_event,
                TP_PROTO(
index 669b5358205d6b41f299b781bee921d5970e94bd..52a763b6aa3ad064adca87ed5756ef65d15ff016 100644 (file)
@@ -657,12 +657,14 @@ int nfs_writepages(struct address_space *mapping, struct writeback_control *wbc)
        int priority = 0;
        int err;
 
+       trace_nfs_writepages(inode, wbc->range_start, wbc->range_end - wbc->range_start);
+
        /* Wait with writeback until write congestion eases */
        if (wbc->sync_mode == WB_SYNC_NONE && nfss->write_congested) {
                err = wait_event_killable(nfss->write_congestion_wait,
                                          nfss->write_congested == 0);
                if (err)
-                       return err;
+                       goto out_err;
        }
 
        nfs_inc_stats(inode, NFSIOS_VFSWRITEPAGES);
@@ -693,10 +695,10 @@ int nfs_writepages(struct address_space *mapping, struct writeback_control *wbc)
        } while (err < 0 && !nfs_error_is_fatal(err));
        nfs_io_completion_put(ioc);
 
-       if (err < 0)
-               goto out_err;
-       return 0;
+       if (err > 0)
+               err = 0;
 out_err:
+       trace_nfs_writepages_done(inode, wbc->range_start, wbc->range_end - wbc->range_start, err);
        return err;
 }