diff options
author | Jeff Layton <jlayton@kernel.org> | 2025-08-08 07:40:34 -0400 |
---|---|---|
committer | Anna Schumaker <anna.schumaker@oracle.com> | 2025-09-23 13:28:19 -0400 |
commit | 83c47ef8aca0dc5e2159e884b2bfd3440948eed1 (patch) | |
tree | 0ef11481bd1c87ae6195b328002c1c22d48cbe2f | |
parent | b6ef079fd984930dcc42f4b247777f296528507e (diff) |
nfs: add tracepoints to nfs_writepages()
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>
-rw-r--r-- | fs/nfs/nfstrace.h | 2 | ||||
-rw-r--r-- | fs/nfs/write.c | 10 |
2 files changed, 8 insertions, 4 deletions
diff --git a/fs/nfs/nfstrace.h b/fs/nfs/nfstrace.h index 2e21b2ad9458..4c935652cfd4 100644 --- a/fs/nfs/nfstrace.h +++ b/fs/nfs/nfstrace.h @@ -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( diff --git a/fs/nfs/write.c b/fs/nfs/write.c index 669b5358205d..52a763b6aa3a 100644 --- a/fs/nfs/write.c +++ b/fs/nfs/write.c @@ -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; } |