Is it already sent in? If not, can it go out today? Hans
Alexander Zarochentsev wrote: > Hello, > > On 30 August 2006 01:10, Andrew James Wade wrote: > >> Hello Alexander, >> >> In addition to your patch, I've also applied the patch below. With >> these two patches the fs is much more stable for me. >> > > That code was removed from reiser4 recently, the patch will be in the > next -mm kernel. > > I knew there was a bug somewhere :) > > >> However, something is holding a d_ref across the calls to >> reiser4_writepage. It's not clear to me that this is allowed so my >> patch may not be a full fix. >> >> Andrew Wade >> >> signed-off-by: <[EMAIL PROTECTED]> >> >> diff -rupN a/fs/reiser4/plugin/item/extent_file_ops.c >> b/fs/reiser4/plugin/item/extent_file_ops.c --- >> a/fs/reiser4/plugin/item/extent_file_ops.c 2006-08-28 >> 11:30:33.000000000 -0400 +++ >> b/fs/reiser4/plugin/item/extent_file_ops.c 2006-08-29 >> 13:06:20.000000000 -0400 @@ -1320,20 +1320,22 @@ static int >> extent_readpage_filler(void * TWIG_LEVEL, CBK_UNIQUE, NULL); >> if (result != CBK_COORD_FOUND) { >> reiser4_unset_hint(hint); >> - return result; >> + goto out; >> } >> ext_coord->valid = 0; >> } >> >> if (zload(ext_coord->coord.node)) { >> reiser4_unset_hint(hint); >> - return RETERR(-EIO); >> + result = RETERR(-EIO); >> + goto out; >> } >> if (!item_is_extent(&ext_coord->coord)) { >> /* tail conversion is running in parallel */ >> zrelse(ext_coord->coord.node); >> reiser4_unset_hint(hint); >> - return RETERR(-EIO); >> + result = RETERR(-EIO); >> + goto out; >> } >> >> if (ext_coord->valid == 0) >> @@ -1358,6 +1360,10 @@ static int extent_readpage_filler(void * >> } else >> reiser4_unset_hint(hint); >> zrelse(ext_coord->coord.node); >> + >> +out: >> + /* Calls to this function may be intermingled with VM writeback. */ >> + reiser4_txn_restart_current(); >> return result; >> } >> >> >> !DSPAM:44f4ad37293861987214747! >> > > Thanks, > Alex. > > > >