mirror of
https://github.com/torvalds/linux.git
synced 2024-12-27 05:11:48 +00:00
NFS: Fix readdir cache invalidation
invalidate_inode_pages2_range() takes page offset arguments, not byte ranges. Another thought is that individual pages might perhaps get evicted by VM pressure, in which case we might perhaps want to re-read not only the evicted page, but all subsequent pages too (in case the server returns more/less data per page so that the alignment of the next entry changes). We should therefore remove the condition that we only do this on page->index==0. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
parent
9c0fc4e28b
commit
2aac05a919
@ -204,7 +204,7 @@ int nfs_readdir_filler(nfs_readdir_descriptor_t *desc, struct page *page)
|
||||
* Note: assumes we have exclusive access to this mapping either
|
||||
* through inode->i_mutex or some other mechanism.
|
||||
*/
|
||||
if (page->index == 0 && invalidate_inode_pages2_range(inode->i_mapping, PAGE_CACHE_SIZE, -1) < 0) {
|
||||
if (invalidate_inode_pages2_range(inode->i_mapping, page->index + 1, -1) < 0) {
|
||||
/* Should never happen */
|
||||
nfs_zap_mapping(inode, inode->i_mapping);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user