[XFS updates] XFS development tree branch, for-linus, updated. v3.8-rc1-6-g37f1356

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
  37f1356 xfs: recalculate leaf entry pointer after compacting a dir2 block
  ab7eac2 xfs: remove int casts from debug dquot soft limit timer asserts
  91e4bac xfs: fix the multi-segment log buffer format
  2d0e9df xfs: fix segment in xfs_buf_item_format_segment
  0f22f9d xfs: rename bli_format to avoid confusion with bli_formats
  d44d9bc xfs: use b_maps[] for discontiguous buffers
  d69043c xfs: drop buffer io reference when a bad bio is built
  3daed8b xfs: fix broken error handling in xfs_vm_writepage
  42e2976 xfs: fix attr tree double split corruption
  6ce377a xfs: fix reading of wrapped log data
  03b1293 xfs: fix buffer shudown reference count mismatch
  4b62acf xfs: don't vmap inode cluster buffers during free
  ca250b1 xfs: invalidate allocbt blocks moved to the free list
  1e7acbb xfs: silence uninitialised f.file warning.
  eaef854 xfs: growfs: don't read garbage for new secondary superblocks
  1f3c785 xfs: move allocation stack switch up to xfs_bmapi_allocate
  326c035 xfs: introduce XFS_BMAPI_STACK_SWITCH
  408cc4e xfs: zero allocation_args on the kernel stack
  7e9620f xfs: only update the last_sync_lsn when a transaction completes
      from  f9668a09e32ac6d2aa22f44cc310e430a8f4a40f (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 37f13561de6039b3a916d1510086030d097dea0f
Author: Eric Sandeen <sandeen@xxxxxxxxxx>
Date:   Thu Jan 10 10:41:48 2013 -0600

    xfs: recalculate leaf entry pointer after compacting a dir2 block
    
    Dave Jones hit this assert when doing a compile on recent git, with
    CONFIG_XFS_DEBUG enabled:
    
    XFS: Assertion failed: (char *)dup - (char *)hdr == be16_to_cpu(*xfs_dir2_data_unused_tag_p(dup)), file: fs/xfs/xfs_dir2_data.c, line: 828
    
    Upon further digging, the tag found by xfs_dir2_data_unused_tag_p(dup)
    contained "2" and not the proper offset, and I found that this value was
    changed after the memmoves under "Use a stale leaf for our new entry."
    in xfs_dir2_block_addname(), i.e.
    
                            memmove(&blp[mid + 1], &blp[mid],
                                    (highstale - mid) * sizeof(*blp));
    
    overwrote it.
    
    What has happened is that the previous call to xfs_dir2_block_compact()
    has rearranged things; it changes btp->count as well as the
    blp array.  So after we make that call, we must recalculate the
    proper pointer to the leaf entries by making another call to
    xfs_dir2_block_leaf_p().
    
    Dave provided a metadump image which led to a simple reproducer
    (create a particular filename in the affected directory) and this
    resolves the testcase as well as the bug on his live system.
    
    Thanks also to dchinner for looking at this one with me.
    
    Signed-off-by: Eric Sandeen <sandeen@xxxxxxxxxx>
    Tested-by: Dave Jones <davej@xxxxxxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>
    Reviewed-by: Mark Tinguely <tinguely@xxxxxxx>
    Signed-off-by: Ben Myers <bpm@xxxxxxx>

commit ab7eac22008f044631c0a3f4be344ebc2cb0e266
Author: Brian Foster <bfoster@xxxxxxxxxx>
Date:   Fri Dec 21 10:45:17 2012 -0500

    xfs: remove int casts from debug dquot soft limit timer asserts
    
    The int casts here make it easy to trigger an assert with a large
    soft limit. For example, set a >4TB soft limit on an empty volume
    to reproduce a (0 > -x) comparison due to an overflow of
    d_blk_softlimit.
    
    Signed-off-by: Brian Foster <bfoster@xxxxxxxxxx>
    Reviewed-by: Ben Myers <bpm@xxxxxxx>
    Signed-off-by: Ben Myers <bpm@xxxxxxx>

commit 91e4bac0b72736410c88632906953f14259144b1
Author: Mark Tinguely <tinguely@xxxxxxx>
Date:   Tue Dec 4 17:18:05 2012 -0600

    xfs: fix the multi-segment log buffer format
    
    Per Dave Chinner suggestion, this patch:
     1) Corrects the detection of whether a multi-segment buffer is
        still tracking data.
     2) Clears all the buffer log formats for a multi-segment buffer.
    
    Signed-off-by: Mark Tinguely <tinguely@xxxxxxx>
    Reviewed-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>
    Signed-off-by: Ben Myers <bpm@xxxxxxx>

commit 2d0e9df579029b62adc72b50977182757cc04cd5
Author: Mark Tinguely <tinguely@xxxxxxx>
Date:   Tue Dec 4 17:18:04 2012 -0600

    xfs: fix segment in xfs_buf_item_format_segment
    
    Not every segment in a multi-segment buffer is dirty in a
    transaction and they will not be outputted. The assert in
    xfs_buf_item_format_segment() that checks for the at least
    one chunk of data in the segment to be used is not necessary
    true for multi-segmented buffers.
    
    Signed-off-by: Mark Tinguely <tinguely@xxxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>
    Signed-off-by: Ben Myers <bpm@xxxxxxx>

commit 0f22f9d0cd8a630b40a9ccc07a8844345b185aae
Author: Mark Tinguely <tinguely@xxxxxxx>
Date:   Tue Dec 4 17:18:03 2012 -0600

    xfs: rename bli_format to avoid confusion with bli_formats
    
    Rename the bli_format structure to __bli_format to avoid
    accidently confusing them with the bli_formats pointer.
    
    Signed-off-by: Mark Tinguely <tinguely@xxxxxxx>
    Reviewed-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>
    Signed-off-by: Ben Myers <bpm@xxxxxxx>

commit d44d9bc68e32ad5881b105f82bd259d261d1ef74
Author: Mark Tinguely <tinguely@xxxxxxx>
Date:   Tue Dec 4 17:18:02 2012 -0600

    xfs: use b_maps[] for discontiguous buffers
    
    Commits starting at 77c1a08 introduced a multiple segment support
    to xfs_buf. xfs_trans_buf_item_match() could not find a multi-segment
    buffer in the transaction because it was looking at the single segment
    block number rather than the multi-segment b_maps[0].bm.bn. This
    results on a recursive buffer lock that can never be satisfied.
    
    This patch:
     1) Changed the remaining b_map accesses to be b_maps[0] accesses.
     2) Renames the single segment b_map structure to __b_map to avoid
        future confusion.
    
    Signed-off-by: Mark Tinguely <tinguely@xxxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>
    Reviewed-by: Christoph Hellwig <hch@xxxxxx>
    Signed-off-by: Ben Myers <bpm@xxxxxxx>

-----------------------------------------------------------------------

Summary of changes:
 fs/xfs/xfs_buf.c         | 12 ++++++------
 fs/xfs/xfs_buf.h         |  6 +++---
 fs/xfs/xfs_buf_item.c    | 49 ++++++++++++++++++++++++++++++++----------------
 fs/xfs/xfs_buf_item.h    |  2 +-
 fs/xfs/xfs_dir2_block.c  |  6 ++++--
 fs/xfs/xfs_qm_syscalls.c |  4 ++--
 fs/xfs/xfs_trans_buf.c   | 27 ++++++++++++++------------
 7 files changed, 64 insertions(+), 42 deletions(-)


hooks/post-receive
-- 
XFS development tree

_______________________________________________
xfs mailing list
xfs@xxxxxxxxxxx
http://oss.sgi.com/mailman/listinfo/xfs


[Index of Archives]     [Linux XFS Devel]     [Linux Filesystem Development]     [Filesystem Testing]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux