[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