Remove implementation of readpage from the hugetlbfs_aops
authorMel Gorman <mel@csn.ul.ie>
Wed, 13 May 2009 14:56:10 +0000 (15:56 +0100)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 13 May 2009 15:04:45 +0000 (08:04 -0700)
commitf2deae9d4e70793568ef9e85d227abb7bef5b622
tree213082dc5352efdcf10a834287ab5ec5f645abb3
parenta4f1cb9f3c42e5d278b0678ed5225d9331a8dcff
Remove implementation of readpage from the hugetlbfs_aops

The core VM assumes the page size used by the address_space in
inode->i_mapping is PAGE_SIZE but hugetlbfs breaks this assumption by
inserting pages into the page cache at offsets the core VM considers
unexpected.

This would not be a problem except that hugetlbfs also provide a
->readpage implementation.  As it exists, the core VM can assume the
base page size is being used, allocate pages on behalf of the
filesystem, insert them into the page cache and call ->readpage to
populate them.  These pages are the wrong size and at the wrong offset
for hugetlbfs causing confusion.

This patch deletes the ->readpage implementation for hugetlbfs on the
grounds the core VM should not be allocating and populating pages on
behalf of hugetlbfs.  There should be no existing users of the
->readpage implementation so it should not cause a regression.

Signed-off-by: Mel Gorman <mel@csn.ul.ie>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
fs/hugetlbfs/inode.c