diff options
author | J. Bruce Fields <bfields@redhat.com> | 2012-12-10 18:01:37 -0500 |
---|---|---|
committer | J. Bruce Fields <bfields@redhat.com> | 2012-12-17 22:00:16 -0500 |
commit | afc59400d6c65bad66d4ad0b2daf879cbff8e23e (patch) | |
tree | cc4c1c4dcf01106259d4f18d637cb2d1115ef980 /fs/nfsd/vfs.c | |
parent | 79f77bf9a4e3dd5ead006b8f17e7c4ff07d8374e (diff) |
nfsd4: cleanup: replace rq_resused count by rq_next_page pointer
It may be a matter of personal taste, but I find this makes the code
clearer.
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'fs/nfsd/vfs.c')
-rw-r--r-- | fs/nfsd/vfs.c | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c index b31e46eeb026..f0a6d88d7fff 100644 --- a/fs/nfsd/vfs.c +++ b/fs/nfsd/vfs.c | |||
@@ -886,7 +886,7 @@ nfsd_splice_actor(struct pipe_inode_info *pipe, struct pipe_buffer *buf, | |||
886 | struct splice_desc *sd) | 886 | struct splice_desc *sd) |
887 | { | 887 | { |
888 | struct svc_rqst *rqstp = sd->u.data; | 888 | struct svc_rqst *rqstp = sd->u.data; |
889 | struct page **pp = rqstp->rq_respages + rqstp->rq_resused; | 889 | struct page **pp = rqstp->rq_next_page; |
890 | struct page *page = buf->page; | 890 | struct page *page = buf->page; |
891 | size_t size; | 891 | size_t size; |
892 | 892 | ||
@@ -894,17 +894,15 @@ nfsd_splice_actor(struct pipe_inode_info *pipe, struct pipe_buffer *buf, | |||
894 | 894 | ||
895 | if (rqstp->rq_res.page_len == 0) { | 895 | if (rqstp->rq_res.page_len == 0) { |
896 | get_page(page); | 896 | get_page(page); |
897 | put_page(*pp); | 897 | put_page(*rqstp->rq_next_page); |
898 | *pp = page; | 898 | *(rqstp->rq_next_page++) = page; |
899 | rqstp->rq_resused++; | ||
900 | rqstp->rq_res.page_base = buf->offset; | 899 | rqstp->rq_res.page_base = buf->offset; |
901 | rqstp->rq_res.page_len = size; | 900 | rqstp->rq_res.page_len = size; |
902 | } else if (page != pp[-1]) { | 901 | } else if (page != pp[-1]) { |
903 | get_page(page); | 902 | get_page(page); |
904 | if (*pp) | 903 | if (*rqstp->rq_next_page) |
905 | put_page(*pp); | 904 | put_page(*rqstp->rq_next_page); |
906 | *pp = page; | 905 | *(rqstp->rq_next_page++) = page; |
907 | rqstp->rq_resused++; | ||
908 | rqstp->rq_res.page_len += size; | 906 | rqstp->rq_res.page_len += size; |
909 | } else | 907 | } else |
910 | rqstp->rq_res.page_len += size; | 908 | rqstp->rq_res.page_len += size; |
@@ -936,8 +934,8 @@ nfsd_vfs_read(struct svc_rqst *rqstp, struct svc_fh *fhp, struct file *file, | |||
936 | .u.data = rqstp, | 934 | .u.data = rqstp, |
937 | }; | 935 | }; |
938 | 936 | ||
939 | WARN_ON_ONCE(rqstp->rq_resused != 1); | 937 | WARN_ON_ONCE(rqstp->rq_next_page != rqstp->rq_respages + 1); |
940 | rqstp->rq_resused = 1; | 938 | rqstp->rq_next_page = rqstp->rq_respages + 1; |
941 | host_err = splice_direct_to_actor(file, &sd, nfsd_direct_splice_actor); | 939 | host_err = splice_direct_to_actor(file, &sd, nfsd_direct_splice_actor); |
942 | } else { | 940 | } else { |
943 | oldfs = get_fs(); | 941 | oldfs = get_fs(); |