From: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx> Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx> --- fs/nfs/pagelist.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/fs/nfs/pagelist.c b/fs/nfs/pagelist.c index a5d3e2a12ae9..855f159fe9da 100644 --- a/fs/nfs/pagelist.c +++ b/fs/nfs/pagelist.c @@ -810,6 +810,13 @@ static void nfs_pgio_release(void *calldata) hdr->completion_ops->completion(hdr); } +static void nfs_pageio_mirror_reset(struct nfs_pgio_mirror *mirror) +{ + mirror->pg_count = 0; + mirror->pg_base = 0; + mirror->pg_recoalesce = 0; +} + static void nfs_pageio_mirror_init(struct nfs_pgio_mirror *mirror, unsigned int bsize) { @@ -1133,9 +1140,7 @@ static void nfs_pageio_doio(struct nfs_pageio_descriptor *desc) } if (list_empty(&mirror->pg_list)) { mirror->pg_bytes_written += mirror->pg_count; - mirror->pg_count = 0; - mirror->pg_base = 0; - mirror->pg_recoalesce = 0; + nfs_pageio_mirror_reset(mirror); } } @@ -1225,9 +1230,7 @@ static int nfs_do_recoalesce(struct nfs_pageio_descriptor *desc) do { list_splice_init(&mirror->pg_list, &head); - mirror->pg_count = 0; - mirror->pg_base = 0; - mirror->pg_recoalesce = 0; + nfs_pageio_mirror_reset(mirror); while (!list_empty(&head)) { struct nfs_page *req; @@ -1275,9 +1278,7 @@ static void nfs_pageio_error_cleanup(struct nfs_pageio_descriptor *desc) mirror = nfs_pgio_get_mirror(desc, midx); desc->pg_completion_ops->error_cleanup(&mirror->pg_list, desc->pg_error); - mirror->pg_count = 0; - mirror->pg_base = 0; - mirror->pg_recoalesce = 0; + nfs_pageio_mirror_reset(mirror); } } -- 2.31.1