diff options
Diffstat (limited to 'fs/nfs/internal.h')
| -rw-r--r-- | fs/nfs/internal.h | 7 | 
1 files changed, 4 insertions, 3 deletions
diff --git a/fs/nfs/internal.h b/fs/nfs/internal.h index 8865538b26b..31fdb03225c 100644 --- a/fs/nfs/internal.h +++ b/fs/nfs/internal.h @@ -554,13 +554,14 @@ void nfs_super_set_maxbytes(struct super_block *sb, __u64 maxfilesize)  static inline  unsigned int nfs_page_length(struct page *page)  { -	loff_t i_size = i_size_read(page->mapping->host); +	loff_t i_size = i_size_read(page_file_mapping(page)->host);  	if (i_size > 0) { +		pgoff_t page_index = page_file_index(page);  		pgoff_t end_index = (i_size - 1) >> PAGE_CACHE_SHIFT; -		if (page->index < end_index) +		if (page_index < end_index)  			return PAGE_CACHE_SIZE; -		if (page->index == end_index) +		if (page_index == end_index)  			return ((i_size - 1) & ~PAGE_CACHE_MASK) + 1;  	}  	return 0;  |