summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorTrond Myklebust <trond.myklebust@fys.uio.no>2002-11-05 04:49:33 -0800
committerLinus Torvalds <torvalds@home.transmeta.com>2002-11-05 04:49:33 -0800
commitb9a2dd766f71192d0f4e24d1430832a3b0eb4750 (patch)
tree86359495323ec71ca4b1b502849db1187bbbc878 /kernel
parentb729e488b9902f8ba95d2064e4a6a809000ff3b1 (diff)
[PATCH] Convert NFS client to use ->readpages()
- Add the library function read_cache_pages(), which is used in a similar fashion to the single page 'read_cache_page()'. It hides the details of the LRU cache etc. from a filesystem that wants to to populate an address space with a list of pages. - Fix NFS so that readahead uses the ->readpages() interface. Means that we can immediately schedule an RPC call in order to complete the I/O, rather than relying on somebody later triggering it by calling lock_page() (and hence sync_page()). The sync_page() method is race-prone, since the waiting page may try to call it before we've finished initializing the 'struct nfs_page'. - Clear out nfs_sync_page(), the nfs_inode->read list, and friends. When the I/O completion gets scheduled in ->readpage(), ->readpages(), they have no reason to exist.
Diffstat (limited to 'kernel')
-rw-r--r--kernel/ksyms.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/kernel/ksyms.c b/kernel/ksyms.c
index c41423568d02..fac863fb462e 100644
--- a/kernel/ksyms.c
+++ b/kernel/ksyms.c
@@ -284,6 +284,7 @@ EXPORT_SYMBOL(find_lock_page);
EXPORT_SYMBOL(find_or_create_page);
EXPORT_SYMBOL(grab_cache_page_nowait);
EXPORT_SYMBOL(read_cache_page);
+EXPORT_SYMBOL(read_cache_pages);
EXPORT_SYMBOL(mark_page_accessed);
EXPORT_SYMBOL(vfs_readlink);
EXPORT_SYMBOL(vfs_follow_link);