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 bf59170 xfs: obey minleft values during extent allocation correctly 4439647 xfs: reset buffer pointers before freeing them ee58abd xfs: avoid getting stuck during async inode flushes e573751 xfs: fix xfs_itruncate_start tracing from 1beb65ad45f29fa1d53c13c6a20056a190ac9060 (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 bf59170a66bc3eaf3ee513aa6ce9774aa2ab5188 Author: Dave Chinner <dchinner@xxxxxxxxxx> Date: Thu Apr 21 09:34:28 2011 +0000 xfs: obey minleft values during extent allocation correctly When allocating an extent that is long enough to consume the remaining free space in an AG, we need to ensure that the allocation leaves enough space in the AG for any subsequent bmap btree blocks that are needed to track the new extent. These have to be allocated in the same AG as we only reserve enough blocks in an allocation transaction for modification of the freespace trees in a single AG. xfs_alloc_fix_minleft() has been considering blocks on the AGFL as free blocks available for extent and bmbt block allocation, which is not correct - blocks on the AGFL are there exclusively for the use of the free space btrees. As a result, when minleft is less than the number of blocks on the AGFL, xfs_alloc_fix_minleft() does not trim the given extent to leave minleft blocks available for bmbt allocation, and hence we can fail allocation during bmbt record insertion. Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx> Reviewed-by: Christoph Hellwig <hch@xxxxxx> Signed-off-by: Alex Elder <aelder@xxxxxxx> commit 44396476a0f24e5174768d3732f1958857c26d22 Author: Dave Chinner <dchinner@xxxxxxxxxx> Date: Thu Apr 21 09:34:27 2011 +0000 xfs: reset buffer pointers before freeing them When we free a vmapped buffer, we need to ensure the vmap address and length we free is the same as when it was allocated. In various places in the log code we change the memory the buffer is pointing to before issuing IO, but we never reset the buffer to point back to it's original memory (or no memory, if that is the case for the buffer). As a result, when we free the buffer it points to memory that is owned by something else and attempts to unmap and free it. Because the range does not match any known mapped range, it can trigger BUG_ON() traps in the vmap code, and potentially corrupt the vmap area tracking. Fix this by always resetting these buffers to their original state before freeing them. Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx> Reviewed-by: Christoph Hellwig <hch@xxxxxx> Signed-off-by: Alex Elder <aelder@xxxxxxx> commit ee58abdfcc8201f500107c7ba03f738af8b49b85 Author: Dave Chinner <dchinner@xxxxxxxxxx> Date: Thu Apr 21 09:34:26 2011 +0000 xfs: avoid getting stuck during async inode flushes When the underlying inode buffer is locked and xfs_sync_inode_attr() is doing a non-blocking flush, xfs_iflush() can return EAGAIN. When this happens, clear the error rather than returning it to xfs_inode_ag_walk(), as returning EAGAIN will result in the AG walk delaying for a short while and trying again. This can result in background walks getting stuck on the one AG until inode buffer is unlocked by some other means. This behaviour was noticed when analysing event traces followed by code inspection and verification of the fix via further traces. Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx> Reviewed-by: Christoph Hellwig <hch@xxxxxx> Signed-off-by: Alex Elder <aelder@xxxxxxx> commit e57375153d7376f2a923d98c388c1e20227b5731 Author: Dave Chinner <dchinner@xxxxxxxxxx> Date: Thu Apr 21 09:34:25 2011 +0000 xfs: fix xfs_itruncate_start tracing Variables are ordered incorrectly in trace call. Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx> Reviewed-by: Christoph Hellwig <hch@xxxxxx> Signed-off-by: Alex Elder <aelder@xxxxxxx> ----------------------------------------------------------------------- Summary of changes: fs/xfs/linux-2.6/xfs_buf.c | 21 ++++++++++++ fs/xfs/linux-2.6/xfs_buf.h | 1 + fs/xfs/linux-2.6/xfs_sync.c | 10 ++++++ fs/xfs/xfs_alloc.c | 1 - fs/xfs/xfs_inode.c | 2 +- fs/xfs/xfs_log.c | 8 ++++- fs/xfs/xfs_log_recover.c | 75 ++++++++++++++++++++++--------------------- 7 files changed, 78 insertions(+), 40 deletions(-) hooks/post-receive -- XFS development tree _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs