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.
>
>
>
>   

Reply via email to