xfs
[Top] [All Lists]

[XFS updates] XFS development tree branch, for-linus, updated. v2.6.33-9

To: xfs@xxxxxxxxxxx
Subject: [XFS updates] XFS development tree branch, for-linus, updated. v2.6.33-9483-gdd77ef9
From: xfs@xxxxxxxxxxx
Date: Mon, 26 Apr 2010 19:41:40 -0500
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "XFS development tree".

The branch, for-linus has been updated
  dd77ef9 xfs: more swap extent fixes for dynamic fork offsets
      from  f1d486a3617a2f620b31224e4ace1496c4627e39 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit dd77ef924c835c9813c3f4dc7e9c72e9cd88d238
Author: Dave Chinner <dchinner@xxxxxxxxxx>
Date:   Tue Apr 20 17:00:37 2010 +1000

    xfs: more swap extent fixes for dynamic fork offsets
    
    A new xfsqa test (226) with a prototype xfs_fsr change to try to
    handle dynamic fork offsets better triggers an assertion failure
    where the inode data fork is in btree format, yet there is room in
    the inode for it to be in extent format. The two inodes look like:
    
    before: ino 0x101 (target), num_extents 11, Max in-fork extents 6, broot 
size 40, fork offset 96
    before: ino 0x115 (temp),  num_extents 5, Max in-fork extents 3, broot size 
40, fork offset 56
    after: ino 0x101 (target), num_extents 5, Max in-fork extents 6, broot size 
40, fork offset 96
    after: ino 0x115 (temp), num_extents 11, Max in-fork extents 3, broot size 
40, fork offset 56
    
    Basically the target inode ends up with 5 extents in btree format,
    but it had space for 6 extents in extent format, so ends up
    incorrect. Notably here the broot size is the same, and that is
    where the kernel code is going wrong - the btree root will fit, so
    it lets the swap go ahead.
    
    The check should not allow the swap to take place if the number of
    extents while in btree format is less than the number of extents
    that can fit in the inode in extent format. Adding that check will
    prevent this swap and corruption from occurring.
    
    Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx>
    Reviewed-by: Christoph Hellwig <hch@xxxxxx>

-----------------------------------------------------------------------

Summary of changes:
 fs/xfs/xfs_dfrag.c |   22 ++++++++++++++++------
 1 files changed, 16 insertions(+), 6 deletions(-)


hooks/post-receive
-- 
XFS development tree

<Prev in Thread] Current Thread [Next in Thread>
  • [XFS updates] XFS development tree branch, for-linus, updated. v2.6.33-9483-gdd77ef9, xfs <=