Hi,

I wonder if resierfs needs to be careful about truncated pages, or does
your .invalidatepage provide synchronisation against set_page_dirty somehow?
--
Index: linux-2.6/fs/reiserfs/inode.c
===================================================================
--- linux-2.6.orig/fs/reiserfs/inode.c
+++ linux-2.6/fs/reiserfs/inode.c
@@ -2840,10 +2840,14 @@ static void reiserfs_invalidatepage(stru
 
 static int reiserfs_set_page_dirty(struct page *page)
 {
-       struct inode *inode = page->mapping->host;
-       if (reiserfs_file_data_log(inode)) {
-               SetPageChecked(page);
-               return __set_page_dirty_nobuffers(page);
+       struct address_space *mapping = page->mapping;
+       struct inode *inode;
+       if (mapping) {
+               inode = mapping->host;
+               if (reiserfs_file_data_log(inode)) {
+                       SetPageChecked(page);
+                       return __set_page_dirty_nobuffers(page);
+               }
        }
        return __set_page_dirty_buffers(page);
 }

Reply via email to