diff options
author | Chuck Lever <chuck.lever@oracle.com> | 2019-12-23 10:28:33 -0500 |
---|---|---|
committer | Anna Schumaker <Anna.Schumaker@Netapp.com> | 2020-01-15 10:54:31 -0500 |
commit | 861e1671bc2eed063aa624cdb2be8cfff16331c9 (patch) | |
tree | bf4f52352c1c110a700a7ba2fbe6a121ababe6e6 /fs/nfs/write.c | |
parent | abf8af78a61523c15d366228b4a598141208a264 (diff) | |
download | linux-861e1671bc2eed063aa624cdb2be8cfff16331c9.tar.bz2 |
NFS: Introduce trace events triggered by page writeback errors
Try to capture the reason for the writeback path tagging an error on
a page.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
Diffstat (limited to 'fs/nfs/write.c')
-rw-r--r-- | fs/nfs/write.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/nfs/write.c b/fs/nfs/write.c index 52cab65f91cf..21787711e352 100644 --- a/fs/nfs/write.c +++ b/fs/nfs/write.c @@ -593,6 +593,7 @@ release_request: static void nfs_write_error(struct nfs_page *req, int error) { nfs_set_pageerror(page_file_mapping(req->wb_page)); + trace_nfs_write_error(req, error); nfs_mapping_set_error(req->wb_page, error); nfs_inode_remove_request(req); nfs_end_page_writeback(req); @@ -999,6 +1000,7 @@ static void nfs_write_completion(struct nfs_pgio_header *hdr) if (test_bit(NFS_IOHDR_ERROR, &hdr->flags) && (hdr->good_bytes < bytes)) { nfs_set_pageerror(page_file_mapping(req->wb_page)); + trace_nfs_comp_error(req, hdr->error); nfs_mapping_set_error(req->wb_page, hdr->error); goto remove_req; } @@ -1847,6 +1849,7 @@ static void nfs_commit_release_pages(struct nfs_commit_data *data) (long long)req_offset(req)); if (status < 0) { if (req->wb_page) { + trace_nfs_commit_error(req, status); nfs_mapping_set_error(req->wb_page, status); nfs_inode_remove_request(req); } |