xfs
[Top] [All Lists]

[XFS updates] XFS development tree branch, master, updated. v2.6.33-6351

To: xfs@xxxxxxxxxxx
Subject: [XFS updates] XFS development tree branch, master, updated. v2.6.33-6351-g68a2ac7
From: xfs@xxxxxxxxxxx
Date: Fri, 26 Mar 2010 11:28:34 -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
  68a2ac7 xfs: clean up xlog_write_adv_cnt
  9a0965f xfs: introduce new internal log vector structure
  33841d9 xfs: reindent xlog_write
  b0c50e2 xfs: factor xlog_write
  ba08b39 xfs: log ticket reservation underestimates the number of iclogs
  4da4898 xfs: Clean up xfs_trans_committed code after factoring
  ab4ea50 xfs: update and factor xfs_trans_committed()
  72dec3a xfs: clean up xfs_trans_commit logic even more
  e35e0c8 xfs: split out iclog writing from xfs_trans_commit()
  174d1ee xfs: fix reservation release commit flag in xfs_bmap_add_attrfork()
  31534cc xfs: remove stale parameter from ->iop_unpin method
  aef714b xfs: Add inode pin counts to traces
  1d3c797 xfs: factor log item initialisation
  5b62938 xfs: add blockdev name to kthreads
  080f453 xfs: Fix integer overflow in fs/xfs/linux-2.6/xfs_ioctl*.c
      from  e8c3753ce4cd6a805ebcfdb3aa6d30e6f4b8b3e0 (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 68a2ac777cca40ccc993512bcf457999be71cc36
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Tue Mar 23 11:47:38 2010 +1100

    xfs: clean up xlog_write_adv_cnt
    
    Replace the awkward xlog_write_adv_cnt with an inline helper that makes
    it more obvious that it's modifying it's paramters, and replace the use
    of an integer type for "ptr" with a real void pointer.  Also move
    xlog_write_adv_cnt to xfs_log_priv.h as it will be used outside of
    xfs_log.c in the delayed logging series.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit 9a0965f6be99440b960eeab28da7f341ee70be61
Author: Dave Chinner <dchinner@xxxxxxxxxx>
Date:   Tue Mar 23 11:43:17 2010 +1100

    xfs: introduce new internal log vector structure
    
    The current log IO vector structure is a flat array and not
    extensible. To make it possible to keep separate log IO vectors for
    individual log items, we need a method of chaining log IO vectors
    together.
    
    Introduce a new log vector type that can be used to wrap the
    existing log IO vectors on use that internally to the log. This
    means that the existing external interface (xfs_log_write) does not
    change and hence no changes to the transaction commit code are
    required.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit 33841d978103f7a564cd32134383dc9a3cb71db6
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Tue Mar 23 11:35:45 2010 +1100

    xfs: reindent xlog_write
    
    Reindent xlog_write to normal one tab indents and move all variable
    declarations into the closest enclosing block.
    
    Split from a bigger patch by Dave Chinner.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit b0c50e224b14234d2b692016f9fe3760a6646a55
Author: Dave Chinner <dchinner@xxxxxxxxxx>
Date:   Tue Mar 23 11:29:44 2010 +1100

    xfs: factor xlog_write
    
    xlog_write is a mess that takes a lot of effort to understand. It is
    a mass of nested loops with 4 space indents to get it to fit in 80 columns
    and lots of funky variables that aren't obvious what they mean or do.
    
    Break it down into understandable chunks.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit ba08b390ff4cd2cc53198d0941be623f301d40b5
Author: Dave Chinner <dchinner@xxxxxxxxxx>
Date:   Tue Mar 23 11:21:11 2010 +1100

    xfs: log ticket reservation underestimates the number of iclogs
    
    When allocation a ticket for a transaction, the ticket is initialised with 
the
    worst case log space usage based on the number of bytes the transaction may
    consume. Part of this calculation is the number of log headers required for 
the
    iclog space used up by the transaction.
    
    This calculation makes an undocumented assumption that if the transaction 
uses
    the log header space reservation on an iclog, then it consumes either the
    entire iclog or it completes. That is - the transaction that is first in an
    iclog is the transaction that the log header reservation is accounted to. If
    the transaction is larger than the iclog, then it will use the entire iclog
    itself. Document this assumption.
    
    Further, the current calculation uses the rule that we can fit iclog_size 
bytes
    of transaction data into an iclog. This is in correct - the amount of space
    available in an iclog for transaction data is the size of the iclog minus 
the
    space used for log record headers. This means that the calculation is out by
    512 bytes per 32k of log space the transaction can consume. This is rarely 
an
    issue because maximally sized transactions are extremely uncommon, and for 
4k
    block size filesystems maximal transaction reservations are about 400kb. 
Hence
    the error in this case is less than the size of an iclog, so that makes it 
even
    harder to hit.
    
    However, anyone using larger directory blocks (16k directory blocks push the
    maximum transaction size to approx. 900k on a 4k block size filesystem) or
    larger block size (e.g. 64k blocks push transactions to the 3-4MB size) 
could
    see the error grow to more than an iclog and at this point the transaction 
is
    guaranteed to get a reservation underrun and shutdown the filesystem.
    
    Fix this by adjusting the calculation to calculate the correct number of 
iclogs
    required and account for them all up front.
    
    Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx>
    Reviewed-by: Christoph Hellwig <hch@xxxxxx>

commit 4da48986ed64fdcebe9485cf1256dae4667ca4e0
Author: Dave Chinner <dchinner@xxxxxxxxxx>
Date:   Tue Mar 23 10:11:05 2010 +1100

    xfs: Clean up xfs_trans_committed code after factoring
    
    Now that the code has been factored, clean up all the remaining
    style cruft, simplify the code and re-order functions so that it
    doesn't need forward declarations.
    
    Also move the remaining functions that require forward declarations
    (xfs_trans_uncommit, xfs_trans_free) so that all the forward
    declarations can be removed from the file.
    
    Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx>
    Reviewed-by: Christoph Hellwig <hch@xxxxxx>

commit ab4ea506dcbfda4b1827d3322c1092bf83e01aae
Author: Dave Chinner <dchinner@xxxxxxxxxx>
Date:   Mon Mar 8 15:06:22 2010 +1100

    xfs: update and factor xfs_trans_committed()
    
    The function header to xfs-trans_committed has long had this
    comment:
    
     * THIS SHOULD BE REWRITTEN TO USE xfs_trans_next_item()
    
    To prepare for different methods of committing items, convert the
    code to use xfs_trans_next_item() and factor the code into smaller,
    more digestible chunks.
    
    Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx>
    Reviewed-by: Christoph Hellwig <hch@xxxxxx>

commit 72dec3a8d3a8a39b5d637e78c84bd7e8a300d7de
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Mon Mar 15 12:52:49 2010 +1100

    xfs: clean up xfs_trans_commit logic even more
    
    > +shut_us_down:
    > + shutdown = XFS_FORCED_SHUTDOWN(mp) ? EIO : 0;
    > + if (!(tp->t_flags & XFS_TRANS_DIRTY) || shutdown) {
    > +         xfs_trans_unreserve_and_mod_sb(tp);
    > +         /*
    
    This whole area in _xfs_trans_commit is still a complete mess.
    
    So while touching this code, unravel this mess as well to make the
    whole flow of the function simpler and clearer.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <david@xxxxxxxxxxxxx>

commit e35e0c8ec9827097fced33c22bde6d97de27e79e
Author: Dave Chinner <dchinner@xxxxxxxxxx>
Date:   Mon Mar 8 11:28:28 2010 +1100

    xfs: split out iclog writing from xfs_trans_commit()
    
    Split the the part of xfs_trans_commit() that deals with writing the
    transaction into the iclog into a separate function. This isolates the
    physical commit process from the logical commit operation and makes
    it easier to insert different transaction commit paths without affecting
    the existing algorithm adversely.
    
    Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx>
    Reviewed-by: Christoph Hellwig <hch@xxxxxx>

commit 174d1ee41d6da930cecee3db0762299901330dc0
Author: Dave Chinner <dchinner@xxxxxxxxxx>
Date:   Mon Mar 8 11:26:23 2010 +1100

    xfs: fix reservation release commit flag in xfs_bmap_add_attrfork()
    
    xfs_bmap_add_attrfork() passes XFS_TRANS_PERM_LOG_RES to xfs_trans_commit()
    to indicate that the commit should release the permanent log reservation
    as part of the commit. This is wrong - the correct flag is
    XFS_TRANS_RELEASE_LOG_RES - and it is only by the chance that both these
    flags have the value of 0x4 that the code is doing the right thing.
    
    Fix it by changing to use the correct flag.
    
    Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx>
    Reviewed-by: Christoph Hellwig <hch@xxxxxx>

commit 31534cc2027de29037b7c5e70e1dcd5e9f7e92c2
Author: Dave Chinner <dchinner@xxxxxxxxxx>
Date:   Mon Mar 8 11:26:03 2010 +1100

    xfs: remove stale parameter from ->iop_unpin method
    
    The staleness of a object being unpinned can be directly derived
    from the object itself - there is no need to extract it from the
    object then pass it as a parameter into IOP_UNPIN().
    
    This means we can kill the XFS_LID_BUF_STALE flag - it is set,
    checked and cleared in the same places XFS_BLI_STALE flag in the
    xfs_buf_log_item so it is now redundant and hence safe to remove.
    
    Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx>
    Reviewed-by: Christoph Hellwig <hch@xxxxxx>

commit aef714b534fcd0295ec5314e48f65b07da95ccba
Author: Dave Chinner <dchinner@xxxxxxxxxx>
Date:   Mon Mar 8 11:24:07 2010 +1100

    xfs: Add inode pin counts to traces
    
    We don't record pin counts in inode events right now, and this makes
    it difficult to track down problems related to pinning inodes. Add
    the pin count to the inode trace class and add trace events for
    pinning and unpinning inodes.
    
    Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx>
    Reviewed-by: Christoph Hellwig <hch@xxxxxx>

commit 1d3c79733218b45a82ffc7e501ac0f1570f2a8c5
Author: Dave Chinner <dchinner@xxxxxxxxxx>
Date:   Tue Mar 23 10:10:00 2010 +1100

    xfs: factor log item initialisation
    
    Each log item type does manual initialisation of the log item.
    Delayed logging introduces new fields that need initialisation, so
    factor all the open coded initialisation into a common function
    first.
    
    Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx>
    Reviewed-by: Christoph Hellwig <hch@xxxxxx>

commit 5b6293875ae883829ce9cc9ae5f37f52ba5517ce
Author: Jan Engelhardt <jengelh@xxxxxxxxxx>
Date:   Tue Mar 23 09:52:55 2010 +1100

    xfs: add blockdev name to kthreads
    
    This allows to see in `ps` and similar tools which kthreads are
    allotted to which block device/filesystem, similar to what jbd2
    does. As the process name is a fixed 16-char array, no extra
    space is needed in tasks.
    
      PID TTY      STAT   TIME COMMAND
        2 ?        S      0:00 [kthreadd]
      197 ?        S      0:00  \_ [jbd2/sda2-8]
      198 ?        S      0:00  \_ [ext4-dio-unwrit]
      204 ?        S      0:00  \_ [flush-8:0]
     2647 ?        S      0:00  \_ [xfs_mru_cache]
     2648 ?        S      0:00  \_ [xfslogd/0]
     2649 ?        S      0:00  \_ [xfsdatad/0]
     2650 ?        S      0:00  \_ [xfsconvertd/0]
     2651 ?        S      0:00  \_ [xfsbufd/ram0]
     2652 ?        S      0:00  \_ [xfsaild/ram0]
     2653 ?        S      0:00  \_ [xfssyncd/ram0]
    
    Signed-off-by: Jan Engelhardt <jengelh@xxxxxxxxxx>
    Reviewed-by: Dave Chinner <david@xxxxxxxxxxxxx>

commit 080f4539d003b54e39eada71ff4e20705343335c
Author: Zhitong Wang <zhitong.wangzt@xxxxxxxxxxxxxxx>
Date:   Tue Mar 23 09:51:22 2010 +1100

    xfs: Fix integer overflow in fs/xfs/linux-2.6/xfs_ioctl*.c
    
    The am_hreq.opcount field in the xfs_attrmulti_by_handle() interface
    is not bounded correctly. The opcount is used to determine the size
    of the buffer required. The size is bounded, but can overflow and so
    the size checks may not be sufficient to catch invalid opcounts.
    Fix it by catching opcount values that would cause overflows before
    calculating the size.
    
    Signed-off-by: Zhitong Wang <zhitong.wangzt@xxxxxxxxxxxxxxx>
    Reviewed-by: Dave Chinner <david@xxxxxxxxxxxxx>

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

Summary of changes:
 fs/xfs/linux-2.6/xfs_buf.c     |   10 +-
 fs/xfs/linux-2.6/xfs_buf.h     |    2 +-
 fs/xfs/linux-2.6/xfs_ioctl.c   |    4 +
 fs/xfs/linux-2.6/xfs_ioctl32.c |    4 +
 fs/xfs/linux-2.6/xfs_super.c   |    9 +-
 fs/xfs/linux-2.6/xfs_sync.c    |    2 +-
 fs/xfs/linux-2.6/xfs_trace.h   |    9 +-
 fs/xfs/quota/xfs_dquot_item.c  |   28 +-
 fs/xfs/xfs_bmap.c              |    2 +-
 fs/xfs/xfs_buf_item.c          |   55 ++--
 fs/xfs/xfs_extfree_item.c      |   18 +-
 fs/xfs/xfs_inode.c             |    2 +
 fs/xfs/xfs_inode_item.c        |   21 +-
 fs/xfs/xfs_log.c               |  668 ++++++++++++++++++++++-------------
 fs/xfs/xfs_log.h               |   13 +
 fs/xfs/xfs_log_priv.h          |    8 +
 fs/xfs/xfs_trans.c             |  760 +++++++++++++++++++---------------------
 fs/xfs/xfs_trans.h             |    5 +-
 fs/xfs/xfs_trans_buf.c         |    3 +-
 19 files changed, 888 insertions(+), 735 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.33-6351-g68a2ac7, xfs <=