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
|