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

Reply via email to