xfs
[Top] [All Lists]

[XFS updates] XFS development tree branch, master, updated. v2.6.38-1013

To: xfs@xxxxxxxxxxx
Subject: [XFS updates] XFS development tree branch, master, updated. v2.6.38-10134-gbf59170
From: xfs@xxxxxxxxxxx
Date: Fri, 20 May 2011 08:04:31 -0500
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

<Prev in Thread] Current Thread [Next in Thread>
  • [XFS updates] XFS development tree branch, master, updated. v2.6.38-10134-gbf59170, xfs <=