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