Merge branch 'for-3.8' of git://linux-nfs.org/~bfields/linux
[firefly-linux-kernel-4.4.55.git] / fs / nfsd / nfs3proc.c
index 97d90d1c86081edf89259bfc1c745082660855fc..1fc02dfdc5c4354d296c21e814362f8e411e91ee 100644 (file)
@@ -460,7 +460,7 @@ nfsd3_proc_readdirplus(struct svc_rqst *rqstp, struct nfsd3_readdirargs *argp,
        __be32  nfserr;
        int     count = 0;
        loff_t  offset;
-       int     i;
+       struct page **p;
        caddr_t page_addr = NULL;
 
        dprintk("nfsd: READDIR+(3) %s %d bytes at %d\n",
@@ -484,8 +484,8 @@ nfsd3_proc_readdirplus(struct svc_rqst *rqstp, struct nfsd3_readdirargs *argp,
                                     &resp->common,
                                     nfs3svc_encode_entry_plus);
        memcpy(resp->verf, argp->verf, 8);
-       for (i=1; i<rqstp->rq_resused ; i++) {
-               page_addr = page_address(rqstp->rq_respages[i]);
+       for (p = rqstp->rq_respages + 1; p < rqstp->rq_next_page; p++) {
+               page_addr = page_address(*p);
 
                if (((caddr_t)resp->buffer >= page_addr) &&
                    ((caddr_t)resp->buffer < page_addr + PAGE_SIZE)) {