xfs
[Top] [All Lists]

[XFS updates] XFS development tree branch, master, updated. v2.6.28-rc3-

To: xfs@xxxxxxxxxxx
Subject: [XFS updates] XFS development tree branch, master, updated. v2.6.28-rc3-20851-g4be4a00
From: xfs@xxxxxxxxxxx
Date: Wed, 29 Apr 2009 10:01:01 -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, master has been updated
  4be4a00 xfs: a couple getbmap cleanups
  2ac00af xfs: add more checks to superblock validation
  f25181f xfs_file_last_byte() needs to acquire ilock
      from  8de2bf937a6bea8f0f775fd5399ba20c1a0c3d77 (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 4be4a00fb55879ef44b5914c189aecffa828deb4
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Wed Apr 29 10:50:48 2009 -0400

    xfs: a couple getbmap cleanups
    
     - reshuffle various conditionals for data vs attr fork to make the code
       more readable
     - do fine-grainded goto-based error handling
     - exit early from conditionals instead of keeping a long else branch around
     - allow kmem_alloc to fail
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Eric Sandeen <sandeen@xxxxxxxxxxx>
    Reviewed-by: Felix Blyakher <felixb@xxxxxxx>
    Signed-off-by: Felix Blyakher <felixb@xxxxxxx>

commit 2ac00af7a6d2e65013e6f28bd1f37c0cd98ba134
Author: Olaf Weber <olaf@xxxxxxx>
Date:   Fri Apr 17 16:12:45 2009 -0500

    xfs: add more checks to superblock validation
    
    There had been reports where xfs filesystem was randomly
    corrupted with fsfuzzer, and xfs failed to handle it
    gracefully. This patch fixes couple of reported problem
    by providing additional checks in the superblock
    validation routine.
    
    Signed-off-by: Olaf Weber <olaf@xxxxxxx>
    Reviewed-by: Josef 'Jeff' Sipek <jeffpc@xxxxxxxxxxxxxx>
    Reviewed-by: Christoph Hellwig <hch@xxxxxx>
    Signed-off-by: Felix Blyakher <felixb@xxxxxxx>

commit f25181f598cf4a8ccc40a51d8b74f8b555ecddee
Author: Lachlan McIlroy <lmcilroy@xxxxxxxxxx>
Date:   Thu Apr 23 22:18:00 2009 -0400

    xfs_file_last_byte() needs to acquire ilock
    
    We had some systems crash with this stack:
    
    [<a00000010000cb20>] ia64_leave_kernel+0x0/0x280
    [<a00000021291ca00>] xfs_bmbt_get_startoff+0x0/0x20 [xfs]
    [<a0000002129080b0>] xfs_bmap_last_offset+0x210/0x280 [xfs]
    [<a00000021295b010>] xfs_file_last_byte+0x70/0x1a0 [xfs]
    [<a00000021295b200>] xfs_itruncate_start+0xc0/0x1a0 [xfs]
    [<a0000002129935f0>] xfs_inactive_free_eofblocks+0x290/0x460 [xfs]
    [<a000000212998fb0>] xfs_release+0x1b0/0x240 [xfs]
    [<a0000002129ad930>] xfs_file_release+0x70/0xa0 [xfs]
    [<a000000100162ea0>] __fput+0x1a0/0x420
    [<a000000100163160>] fput+0x40/0x60
    
    The problem here is that xfs_file_last_byte() does not acquire the
    inode lock and can therefore race with another thread that is modifying
    the extext list.  While xfs_bmap_last_offset() is trying to lookup
    what was the last extent some extents were merged and the extent list
    shrunk so the index we lookup is now beyond the end of the extent list
    and potentially in a freed buffer.
    
    Signed-off-by: Lachlan McIlroy <lmcilroy@xxxxxxxxxx>
    Reviewed-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Felix Blyakher <felixb@xxxxxxx>
    Signed-off-by: Felix Blyakher <felixb@xxxxxxx>

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

Summary of changes:
 fs/xfs/xfs_bmap.c  |  162 +++++++++++++++++++++++++--------------------------
 fs/xfs/xfs_inode.c |    2 +
 fs/xfs/xfs_mount.c |    3 +
 3 files changed, 84 insertions(+), 83 deletions(-)


hooks/post-receive
-- 
XFS development tree

<Prev in Thread] Current Thread [Next in Thread>
  • [XFS updates] XFS development tree branch, master, updated. v2.6.28-rc3-20851-g4be4a00, xfs <=