reiserfs set_page_dirty vs truncate race?

2006-10-10 Thread Nick Piggin
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);
 }



Re: Reiser4: Running out of room still causes corruption

2006-10-10 Thread Christopher Sawtell
On Tuesday 10 October 2006 18:48, Daniel Kasak wrote:
 I'd had more problems with filesystem corruption after running out of
 space.
So have I, while using Ktorrent on one occasion and rsync to update a portage 
tree on the other.

Both caused fairly massive filesystem corruption, i.e. 200+ files or 
directories being described as recoverable errors, yet they produced error 
messages when fsck.reiser4 was run with --fix. Then 200+ objects turned up in 
lost+found. I do hope this problem can be fixed because in all other features 
reiser4 is an _excellent_ file system.

If there is anything I, as an experienced user, but not much of a programmer 
any more, can do please ask.

Sorry, but I have not made any records of error messages.

I have a spare disk on the end of a USB wire with which I am happy to 
experiment.

--
Christopher Sawtell.


Re: reiserfs set_page_dirty vs truncate race?

2006-10-10 Thread Vladimir V. Saveliev
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);
  }
 
 
 


Re: reiserfs set_page_dirty vs truncate race?

2006-10-10 Thread Nick Piggin
On Tue, Oct 10, 2006 at 06:29:27PM +0400, Vladimir V. Saveliev wrote:
 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.

So they may operate on truncated pages? Then you probably need the fix.
Anyway, if you would like to merge it, you may add a
Signed-off-by: Nick Piggin [EMAIL PROTECTED]

Thanks,
Nick


Recommendation for traders: STR0NG buy. [9 October, 2006]

2006-10-10 Thread Isabelle Engel
hi
do not respond



Hans Reiser arrested...

2006-10-10 Thread Christopher Chan

http://sfgate.com/cgi-bin/article.cgi?f=/c/a/2006/10/10/BAGERLM3RR15.DTL

posted on Slashdot.

I hope reiser4 development still continues despite this...