xfs
[Top] [All Lists]

Re: REVIEW: Fix for incore extent corruption.

To: lachlan@xxxxxxx
Subject: Re: REVIEW: Fix for incore extent corruption.
From: Eric Sandeen <sandeen@xxxxxxxxxxx>
Date: Thu, 18 Sep 2008 23:23:38 -0700
Cc: Russell Cattelan <cattelan@xxxxxxxxxxx>, xfs@xxxxxxxxxxx
In-reply-to: <48D31B9A.1080803@sgi.com>
References: <48D19A83.4040608@thebarn.com> <48D1CD46.4010104@sgi.com> <48D1DCD5.7040502@thebarn.com> <48D218AE.9090400@sgi.com> <48D2C97A.1070703@thebarn.com> <63352.131.252.241.230.1221776406.squirrel@sandeen.net> <48D2F795.3080104@sgi.com> <48D31B9A.1080803@sgi.com>
Sender: xfs-bounce@xxxxxxxxxxx
User-agent: Thunderbird 2.0.0.16 (Macintosh/20080707)
Lachlan McIlroy wrote:
> Here's a patch to remove xfs_iext_irec_compact_full() like Russell
> did in his original patch - are you guys happy with this?
> 
> I'm putting it through it's paces now and so far it looks good.

I'll have to think more about it, honestly.  Probably fine, but I've not
looked at all the surrounding code, I was so far just looking for the
original bug.

(FWIW, compact_full *does* get called reasonably frequently, but the
memmove case is what's hard to hit...)

-Eric

> --- a/fs/xfs/xfs_inode.c      2008-09-19 13:08:08.000000000 +1000
> +++ b/fs/xfs/xfs_inode.c      2008-09-19 13:16:34.000000000 +1000
> @@ -4157,7 +4166,7 @@ xfs_iext_indirect_to_direct(
>       ASSERT(nextents <= XFS_LINEAR_EXTS);
>       size = nextents * sizeof(xfs_bmbt_rec_t);
>  
> -     xfs_iext_irec_compact_full(ifp);
> +     xfs_iext_irec_compact_pages(ifp);
>       ASSERT(ifp->if_real_bytes == XFS_IEXT_BUFSZ);
>  
>       ep = ifp->if_u1.if_ext_irec->er_extbuf;

...


<Prev in Thread] Current Thread [Next in Thread>