find_get_page() and find_lock_page() need to unpack the tail
If the page being sought corresponds to the tail, and the tail is packed
in the inode, the tail must be unpacked.
Signed-off-by: Dave Kleikamp <[EMAIL PROTECTED]>
---
mm/filemap.c | 3 +++
1 file changed, 3 insertions(+)
diff -Nurp linux004/mm/filemap.c linux005/mm/filemap.c
--- linux004/mm/filemap.c 2007-11-07 08:14:01.000000000 -0600
+++ linux005/mm/filemap.c 2007-11-08 10:49:46.000000000 -0600
@@ -24,6 +24,7 @@
#include <linux/file.h>
#include <linux/uio.h>
#include <linux/hash.h>
+#include <linux/vm_file_tail.h>
#include <linux/writeback.h>
#include <linux/backing-dev.h>
#include <linux/pagevec.h>
@@ -600,6 +601,7 @@ struct page * find_get_page(struct addre
{
struct page *page;
+ vm_file_tail_unpack_index(mapping, offset);
read_lock_irq(&mapping->tree_lock);
page = radix_tree_lookup(&mapping->page_tree, offset);
if (page)
@@ -624,6 +626,7 @@ struct page *find_lock_page(struct addre
{
struct page *page;
+ vm_file_tail_unpack_index(mapping, offset);
repeat:
read_lock_irq(&mapping->tree_lock);
page = radix_tree_lookup(&mapping->page_tree, offset);
-
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html