[XFS updates] XFS development tree branch, for-linus, updated. v2.6.29-7201-g1b17d76

xfs at oss.sgi.com xfs at oss.sgi.com
Mon Jun 1 23:23:21 CDT 2009


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
  1b17d76 xfs: prevent deadlock in xfs_qm_shake()
  e6da7c9 xfs: fix overflow in xfs_growfs_data_private
  1f23920 xfs: fix double unlock in xfs_swap_extents()
      from  28e211700a81b0a934b6c7a4b8e7dda843634d2f (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 1b17d766463d51904cb242f194a780737e5f73ef
Author: Felix Blyakher <felixb at sgi.com>
Date:   Mon Jun 1 13:13:24 2009 -0500

    xfs: prevent deadlock in xfs_qm_shake()
    
    It's possible to recurse into filesystem from the memory
    allocation, which deadlocks in xfs_qm_shake(). Add check
    for __GFP_FS, and bail out if it is not set.
    
    Signed-off-by: Felix Blyakher <felixb at sgi.com>
    Signed-off-by: Hedi Berriche <hedi at sgi.com>
    Reviewed-by: Christoph Hellwig <hch at lst.de>
    Reviewed-by: Andi Kleen <ak at linux.intel.com>
    Signed-off-by: Felix Blyakher <felixb at sgi.com>

commit e6da7c9fed111ba1243297ee6eda8e24ae11c384
Author: Eric Sandeen <sandeen at sandeen.net>
Date:   Sat May 23 14:30:12 2009 -0500

    xfs: fix overflow in xfs_growfs_data_private
    
    In the case where growing a filesystem would leave the last AG
    too small, the fixup code has an overflow in the calculation
    of the new size with one fewer ag, because "nagcount" is a 32
    bit number.  If the new filesystem has > 2^32 blocks in it
    this causes a problem resulting in an EINVAL return from growfs:
    
     # xfs_io -f -c "truncate 19998630180864" fsfile
     # mkfs.xfs -f -bsize=4096 -dagsize=76288719b,size=3905982455b fsfile
     # mount -o loop fsfile /mnt
     # xfs_growfs /mnt
    
    meta-data=/dev/loop0             isize=256    agcount=52,
    agsize=76288719 blks
             =                       sectsz=512   attr=2
    data     =                       bsize=4096   blocks=3905982455, imaxpct=5
             =                       sunit=0      swidth=0 blks
    naming   =version 2              bsize=4096   ascii-ci=0
    log      =internal               bsize=4096   blocks=32768, version=2
             =                       sectsz=512   sunit=0 blks, lazy-count=0
    realtime =none                   extsz=4096   blocks=0, rtextents=0
    xfs_growfs: XFS_IOC_FSGROWFSDATA xfsctl failed: Invalid argument
    
    Reported-by: richard.ems at cape-horn-eng.com
    Signed-off-by: Eric Sandeen <sandeen at sandeen.net>
    Reviewed-by: Christoph Hellwig <hch at lst.de>
    Reviewed-by: Felix Blyakher <felixb at sgi.com>
    Signed-off-by: Felix Blyakher <felixb at sgi.com>

commit 1f23920dbf1377fa9e4aef4f3d20c34a06a71a35
Author: Felix Blyakher <felixb at sgi.com>
Date:   Thu May 7 19:49:45 2009 -0500

    xfs: fix double unlock in xfs_swap_extents()
    
    Regreesion from commit ef8f7fc, which rearranged the code in
    xfs_swap_extents() leading to double unlock of xfs inode ilock.
    That resulted in xfs_fsr deadlocking itself on platforms, which
    don't handle double unlock of rw_semaphore nicely. It caused the
    count go negative, which represents the write holder, without
    really having one. ia64 is one of the platforms where deadlock
    was easily reproduced and the fix was tested.
    
    Signed-off-by: Eric Sandeen <sandeen at sandeen.net>
    Reviewed-by: Eric Sandeen <sandeen at sandeen.net>
    Signed-off-by: Felix Blyakher <felixb at sgi.com>

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

Summary of changes:
 fs/xfs/linux-2.6/kmem.h |    2 +-
 fs/xfs/xfs_dfrag.c      |    8 +++++---
 fs/xfs/xfs_fsops.c      |    2 +-
 3 files changed, 7 insertions(+), 5 deletions(-)


hooks/post-receive
-- 
XFS development tree




More information about the xfs mailing list