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