Hello

On Tuesday 10 October 2006 11:44, Nick Piggin wrote:
> Hi,
> 
> I wonder if resierfs needs to be careful about truncated pages, 

I think it is assumed that __set_page_dirty_nobuffers and 
__set_page_dirty_buffers care 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