Hi Linus,
Please pull from:
git://oss.sgi.com:8090/xfs/xfs-2.6
This will update the following files:
fs/xfs/linux-2.6/xfs_aops.c | 18 +++++++++++++-----
fs/xfs/linux-2.6/xfs_lrw.c | 27 ++++++++++++++++++++++-----
fs/xfs/quota/xfs_qm_bhv.c | 2 +-
fs/xfs/xfs_alloc.h | 20 ++++++++++++++++++++
fs/xfs/xfs_fsops.c | 16 ++++++++++------
fs/xfs/xfs_mount.c | 32 ++++++++------------------------
fs/xfs/xfs_vfsops.c | 3 ++-
7 files changed, 76 insertions(+), 42 deletions(-)
through these commits:
commit 4be536debe3f7b0c62283e77fd6bd8bdb9f83c6f
Author: David Chinner <dgc@xxxxxxx>
Date: Thu Sep 7 14:26:50 2006 +1000
[XFS] Prevent free space oversubscription and xfssyncd looping.
The fix for recent ENOSPC deadlocks introduced certain limitations on
allocations. The fix could cause xfssyncd to loop endlessly if we did not
leave some space free for the allocator to work correctly. Basically, we
needed to ensure that we had at least 4 blocks free for an AG free list
and a block for the inode bmap btree at all times.
However, this did not take into account the fact that each AG has a free
list that needs 4 blocks. Hence any filesystem with more than one AG could
cause oversubscription of free space and make xfssyncd spin forever trying
to allocate space needed for AG freelists that was not available in the
AG.
The following patch reserves space for the free lists in all AGs plus the
inode bmap btree which prevents oversubscription. It also prevents those
blocks from being reported as free space (as they can never be used) and
makes the SMP in-core superblock accounting code and the reserved block
ioctl respect this requirement.
SGI-PV: 955674
SGI-Modid: xfs-linux-melb:xfs-kern:26894a
Signed-off-by: David Chinner <dgc@xxxxxxx>
Signed-off-by: David Chatterton <chatz@xxxxxxx>
commit 721259bce2851893155c6cb88a3f8ecb106b348c
Author: Lachlan McIlroy <lachlan@xxxxxxx>
Date: Thu Sep 7 14:27:05 2006 +1000
[XFS] Fix ABBA deadlock between i_mutex and iolock. Avoid calling
__blockdev_direct_IO for the DIO_OWN_LOCKING case for direct I/O reads
since it drops and reacquires the i_mutex while holding the iolock and
this violates the locking order.
SGI-PV: 955696
SGI-Modid: xfs-linux-melb:xfs-kern:26898a
Signed-off-by: Lachlan McIlroy <lachlan@xxxxxxx>
Signed-off-by: David Chatterton <chatz@xxxxxxx>
commit 0a8d17d090a4939643a52194b7d4a4001b9b2d93
Author: David Chinner <dgc@xxxxxxx>
Date: Thu Sep 7 14:27:15 2006 +1000
[XFS] Fix xfs_splice_write() so appended data gets to disk.
xfs_splice_write() failed to update the on disk inode size when extending
the so when the file was closed the range extended by splice was truncated
off. Hence any region of a file written to by splice would end up as a
hole full of zeros.
SGI-PV: 955939
SGI-Modid: xfs-linux-melb:xfs-kern:26920a
Signed-off-by: David Chinner <dgc@xxxxxxx>
Signed-off-by: David Chatterton <chatz@xxxxxxx>
commit 0edc7d0f3709e8c3bb7e69c4df614218a753361e
Author: Nathan Scott <nathans@xxxxxxx>
Date: Thu Sep 7 14:27:23 2006 +1000
[XFS] Fix a bad pointer dereference in the quota statvfs handling.
SGI-PV: 955993
SGI-Modid: xfs-linux-melb:xfs-kern:26934a
Signed-off-by: Nathan Scott <nathans@xxxxxxx>
Signed-off-by: David Chatterton <chatz@xxxxxxx>
Thanks,
David
|