]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
Cache bypass: adjust read size for non-contiguous readpages
authorMarc Dionne <marc.c.dionne@gmail.com>
Sun, 7 Nov 2010 18:35:36 +0000 (13:35 -0500)
committerDerrick Brashear <shadow@dementia.org>
Wed, 12 Jan 2011 14:15:15 +0000 (06:15 -0800)
The bypass code's readpages does deal with a non-contiguous list
of pages, but it doesn't adjust the size of the read it requests
from the background daemon accordingly.  As a result we'll ask the
server for pages we were not asked to read.

Reviewed-on: http://gerrit.openafs.org/3282
Reviewed-by: Matt Benjamin <matt@linuxbox.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
(cherry picked from commit 0b6b2b3cab09eacf9b03638d8770c83aeb0b8fea)

Change-Id: Ic7241fb27bd177eb7279292804def753f9120407
Reviewed-on: http://gerrit.openafs.org/3643
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
src/afs/LINUX/osi_vnodeops.c

index b799bc115f532e7e8e844946bca15684a9969e40..204cc21af30e456a53444619dbc5fa1c51e6412a 100644 (file)
@@ -1748,7 +1748,8 @@ afs_linux_bypass_readpages(struct file *fp, struct address_space *mapping,
             page_cache_release(pp);
            iovecp[page_ix].iov_base = (void *) 0;
            base_index++;
-            continue;
+           ancr->length -= PAGE_SIZE;
+           continue;
         }
         base_index++;
         if(code) {