xfs
[Top] [All Lists]

[XFS updates] XFS development tree branch, for-linus, updated. v2.6.30-r

To: xfs@xxxxxxxxxxx
Subject: [XFS updates] XFS development tree branch, for-linus, updated. v2.6.30-rc4-34575-gfd45e478
From: xfs@xxxxxxxxxxx
Date: Sun, 10 Jan 2010 13:16:18 -0600
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
  fd45e478 xfs: Ensure we force all busy extents in range to disk
  44e08c4 xfs: Don't flush stale inodes
  d6d59ba xfs: fix timestamp handling in xfs_setattr
  ea9a488 xfs: use DECLARE_EVENT_CLASS
      from  a539bd8c86549b545b4ed27a0cfaf53fe649054d (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 fd45e4784164d1017521086524e3442318c67370
Author: Dave Chinner <david@xxxxxxxxxxxxx>
Date:   Sat Jan 2 02:38:56 2010 +0000

    xfs: Ensure we force all busy extents in range to disk
    
    When we search for and find a busy extent during allocation we
    force the log out to ensure the extent free transaction is on
    disk before the allocation transaction. The current implementation
    has a subtle bug in it--it does not handle multiple overlapping
    ranges.
    
    That is, if we free lots of little extents into a single
    contiguous extent, then allocate the contiguous extent, the busy
    search code stops searching at the first extent it finds that
    overlaps the allocated range. It then uses the commit LSN of the
    transaction to force the log out to.
    
    Unfortunately, the other busy ranges might have more recent
    commit LSNs than the first busy extent that is found, and this
    results in xfs_alloc_search_busy() returning before all the
    extent free transactions are on disk for the range being
    allocated. This can lead to potential metadata corruption or
    stale data exposure after a crash because log replay won't replay
    all the extent free transactions that cover the allocation range.
    
    Modified-by: Alex Elder <aelder@xxxxxxx>
    
    (Dropped the "found" argument from the xfs_alloc_busysearch trace
    event.)
    
    Signed-off-by: Dave Chinner <david@xxxxxxxxxxxxx>
    Reviewed-by: Christoph Hellwig <hch@xxxxxx>
    Signed-off-by: Alex Elder <aelder@xxxxxxx>

commit 44e08c45cc14e6190a424be8d450070c8e508fad
Author: Dave Chinner <david@xxxxxxxxxxxxx>
Date:   Sat Jan 2 02:39:40 2010 +0000

    xfs: Don't flush stale inodes
    
    Because inodes remain in cache much longer than inode buffers do
    under memory pressure, we can get the situation where we have
    stale, dirty inodes being reclaimed but the backing storage has
    been freed.  Hence we should never, ever flush XFS_ISTALE inodes
    to disk as there is no guarantee that the backing buffer is in
    cache and still marked stale when the flush occurs.
    
    Signed-off-by: Dave Chinner <david@xxxxxxxxxxxxx>
    Signed-off-by: Alex Elder <aelder@xxxxxxx>

commit d6d59bada372bcf8bd36c3bbc71c485c29dd2a4b
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Wed Dec 23 16:09:13 2009 +0000

    xfs: fix timestamp handling in xfs_setattr
    
    We currently have some rather odd code in xfs_setattr for
    updating the a/c/mtime timestamps:
    
     - first we do a non-transaction update if all three are updated
       together
     - second we implicitly update the ctime for various changes
       instead of relying on the ATTR_CTIME flag
     - third we set the timestamps to the current time instead of the
       arguments in the iattr structure in many cases.
    
    This patch makes sure we update it in a consistent way:
    
     - always transactional
     - ctime is only updated if ATTR_CTIME is set or we do a size
       update, which is a special case
     - always to the times passed in from the caller instead of the
       current time
    
    The only non-size caller of xfs_setattr that doesn't come from
    the VFS is updated to set ATTR_CTIME and pass in a valid ctime
    value.
    
    Reported-by: Eric Blake <ebb9@xxxxxxx>
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Signed-off-by: Alex Elder <aelder@xxxxxxx>

commit ea9a48881e093a41a79305fb1545ca0794b203dc
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Mon Dec 21 14:03:03 2009 +0000

    xfs: use DECLARE_EVENT_CLASS
    
    Using DECLARE_EVENT_CLASS allows us to to use trace event code
    instead of duplicating it in the binary.  This was not available
    before 2.6.33 so it had to be done as a separate step once the
    prerequisite was merged.
    
    This only requires changes to xfs_trace.h and the results are
    rather impressive:
    
    hch@brick:~/work/linux-2.6/obj-kvm$ size fs/xfs/xfs.o*
    text           data     bss     dec     hex filename
     607732       41884    3616  653232   9f7b0 fs/xfs/xfs.o
    1026732       41884    3808 1072424  105d28 fs/xfs/xfs.o.old
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Signed-off-by: Alex Elder <aelder@xxxxxxx>

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

Summary of changes:
 fs/xfs/linux-2.6/xfs_acl.c   |    3 +-
 fs/xfs/linux-2.6/xfs_trace.h | 1141 ++++++++++++++++++++++--------------------
 fs/xfs/xfs_alloc.c           |   44 +-
 fs/xfs/xfs_inode.c           |   10 +-
 fs/xfs/xfs_vnodeops.c        |   93 ++--
 5 files changed, 666 insertions(+), 625 deletions(-)


hooks/post-receive
-- 
XFS development tree

<Prev in Thread] Current Thread [Next in Thread>
  • [XFS updates] XFS development tree branch, for-linus, updated. v2.6.30-rc4-34575-gfd45e478, xfs <=