Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
[linux-2.6-microblaze.git] / fs / afs / yfsclient.c
index b5b45c5..fe413e7 100644 (file)
@@ -497,8 +497,6 @@ static int yfs_deliver_fs_fetch_data64(struct afs_call *call)
                ASSERTCMP(req->offset, <=, PAGE_SIZE);
                if (req->offset == PAGE_SIZE) {
                        req->offset = 0;
-                       if (req->page_done)
-                               req->page_done(req);
                        req->index++;
                        if (req->remain > 0)
                                goto begin_page;
@@ -556,11 +554,13 @@ static int yfs_deliver_fs_fetch_data64(struct afs_call *call)
                if (req->offset < PAGE_SIZE)
                        zero_user_segment(req->pages[req->index],
                                          req->offset, PAGE_SIZE);
-               if (req->page_done)
-                       req->page_done(req);
                req->offset = 0;
        }
 
+       if (req->page_done)
+               for (req->index = 0; req->index < req->nr_pages; req->index++)
+                       req->page_done(req);
+
        _leave(" = 0 [done]");
        return 0;
 }