xfs
[Top] [All Lists]

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

To: xfs@xxxxxxxxxxx
Subject: [XFS updates] XFS development tree branch, master, updated. v2.6.38-18993-g81463b1
From: xfs@xxxxxxxxxxx
Date: Fri, 8 Jul 2011 14:26:35 -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
  81463b1 xfs: remove variables that serve no purpose in 
xfs_alloc_ag_vextent_exact()
  c0e090c xfs: consolidate & clarify mount sanity checks
  e163cbd xfs: avoid a few disk cache flushes
  1d5ae5d xfs: cleanup I/O-related buffer flags
  c8da0fa xfs: return the buffer locked from xfs_buf_get_uncached
  0c842ad xfs: clean up buffer locking helpers
  bbb4197 xfs: remove the unused xfs_bufhash structure
  69ef921 xfs: byteswap constants instead of variables
  218106a xfs: use generic get_unaligned_beXX helpers
  2282396 xfs: cleanup struct xfs_dir2_leaf
  3ed8638 xfs: cleanup the definition of struct xfs_dir2_data_entry
  0ba9cd8 xfs: kill struct xfs_dir2_data
  c2066e2 xfs: avoid usage of struct xfs_dir2_data
  a64b041 xfs: kill struct xfs_dir2_block
  4f6ae1a xfs: avoid usage of struct xfs_dir2_block
  78f70cd xfs: cleanup the definition of struct xfs_dir2_sf_entry
  ac8ba50 xfs: kill struct xfs_dir2_sf
  8bc3878 xfs: cleanup shortform directory inode number handling
  4fb44c8 xfs: factor out xfs_dir2_leaf_find_entry
  29d104a xfs: kill the unused struct xfs_sync_work
  f3ca873 xfs: remove i_transp
  7a249cf xfs: fix filesystsem freeze race in xfs_trans_alloc
  33b8f7c xfs: improve sync behaviour in the face of aggressive dirtying
  8f04c47 xfs: split xfs_itruncate_finish
  857b977 xfs: kill xfs_itruncate_start
  681b120 xfs: always log timestamp updates in xfs_setattr_size
  c4ed424 xfs: split xfs_setattr
  dec58f1 xfs: work around bogus gcc warning in xfs_allocbt_init_cursor
  dbcdde3 xfs: re-enable non-blocking behaviour in xfs_map_blocks
  680a647 xfs: PF_FSTRANS should never be set in ->writepage
      from  1316d4da3f632d5843d5a446203e73067dc40f09 (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 81463b1ca8dbd2f4f180feac3f49c7640e2b5f79
Author: Chandra Seetharaman <sekharan@xxxxxxxxxx>
Date:   Thu Jun 9 16:47:49 2011 +0000

    xfs: remove variables that serve no purpose in xfs_alloc_ag_vextent_exact()
    
    Remove two variables that serve no purpose in
    xfs_alloc_ag_vextent_exact().
    
    Signed-off-by: Chandra Seetharaman <sekharan@xxxxxxxxxx>
    Signed-off-by: Alex Elder <aelder@xxxxxxx>

commit c0e090ced259b85b854636c99dda95b7070a2785
Author: Eric Sandeen <sandeen@xxxxxxxxxx>
Date:   Fri May 20 21:52:17 2011 +0000

    xfs: consolidate & clarify mount sanity checks
    
    Pavol pointed out that there is one silent error case in the mount
    path, and that others are rather uninformative.
    
    I've taken Pavol's suggested patch and extended it a bit to also:
    
    * fix a message which says "turned off" but actually errors out
    * consolidate the vaguely differentiated "SB sanity check [12]"
      messages, and hexdump the superblock for analysis
    
    Original-patch-by: Pavol Gono <Pavol.Gono@xxxxxxxxxxx>
    Signed-off-by: Eric Sandeen <sandeen@xxxxxxxxxx>
    Signed-off-by: Alex Elder <aelder@xxxxxxx>

commit e163cbde981c5988c3e80ca29589132336f18a72
Author: Christoph Hellwig <hch@xxxxxx>
Date:   Fri Jul 8 14:36:36 2011 +0200

    xfs: avoid a few disk cache flushes
    
    There is no need for a pre-flush when doing writing the second part of a
    split log buffer, and if we are using an external log there is no need
    to do a full cache flush of the log device at all given that all writes
    to it use the FUA flag.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Alex Elder <aelder@xxxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit 1d5ae5dfeee024d51fb2c0205035d7611a8f0c86
Author: Christoph Hellwig <hch@xxxxxx>
Date:   Fri Jul 8 14:36:32 2011 +0200

    xfs: cleanup I/O-related buffer flags
    
    Remove the unused and misnamed _XBF_RUN_QUEUES flag, rename XBF_LOG_BUFFER
    to the more fitting XBF_SYNCIO, and split XBF_ORDERED into XBF_FUA and
    XBF_FLUSH to allow more fine grained control over the bio flags.  Also
    cleanup processing of the flags in _xfs_buf_ioapply to make more sense,
    and renumber the sparse flag number space to group flags by purpose.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Alex Elder <aelder@xxxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit c8da0faf6b07623c473cab42967f943ad4ab7560
Author: Christoph Hellwig <hch@xxxxxx>
Date:   Fri Jul 8 14:36:25 2011 +0200

    xfs: return the buffer locked from xfs_buf_get_uncached
    
    All other xfs_buf_get/read-like helpers return the buffer locked, make sure
    xfs_buf_get_uncached isn't different for no reason.  Half of the callers
    already lock it directly after, and the others probably should also keep
    it locked if only for consistency and beeing able to use xfs_buf_rele,
    but I'll leave that for later.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Alex Elder <aelder@xxxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit 0c842ad46a51891ac4420b7285613f4134a65ccd
Author: Christoph Hellwig <hch@xxxxxx>
Date:   Fri Jul 8 14:36:19 2011 +0200

    xfs: clean up buffer locking helpers
    
    Rename xfs_buf_cond_lock and reverse it's return value to fit most other
    trylock operations in the Kernel and XFS (with the exception of 
down_trylock,
    after which xfs_buf_cond_lock was modelled), and replace xfs_buf_lock_val
    with an xfs_buf_islocked for use in asserts, or and opencoded variant in
    tracing.  remove the XFS_BUF_* wrappers for all the locking helpers.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Alex Elder <aelder@xxxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit bbb4197c73be356a052dac25cce5ed0c157c6c90
Author: Christoph Hellwig <hch@xxxxxx>
Date:   Fri Jul 8 14:36:10 2011 +0200

    xfs: remove the unused xfs_bufhash structure
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Alex Elder <aelder@xxxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit 69ef921b55cc3788d1d2a27b33b27d04acd0090a
Author: Christoph Hellwig <hch@xxxxxx>
Date:   Fri Jul 8 14:36:05 2011 +0200

    xfs: byteswap constants instead of variables
    
    Micro-optimize various comparisms by always byteswapping the constant
    instead of the variable, which allows to do the swap at compile instead
    of runtime.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Alex Elder <aelder@xxxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit 218106a1104c598011e5df9d9aac7e0416be03e6
Author: Christoph Hellwig <hch@xxxxxx>
Date:   Fri Jul 8 14:35:58 2011 +0200

    xfs: use generic get_unaligned_beXX helpers
    
    Switch the shortform directory code over to use the generic
    get_unaligned_beXX helpers instead of reinventing them.  As a result
    kill off xfs_arch.h and move the setting of XFS_NATIVE_HOST into
    xfs_linux.h.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Alex Elder <aelder@xxxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit 2282396d8157033503318fe4dee77ba82dc9d144
Author: Christoph Hellwig <hch@xxxxxx>
Date:   Fri Jul 8 14:35:53 2011 +0200

    xfs: cleanup struct xfs_dir2_leaf
    
    Simplify the confusing xfs_dir2_leaf structure.  It is supposed to describe
    an XFS dir2 leaf format btree block, but due to the variable sized nature
    of almost all elements in it it can't actuall do anything close to that
    job.   Remove the members that are after the first variable sized array,
    given that they could only be used for sizeof expressions that can as well
    just use the underlying types directly, and make the ents array a real
    C99 variable sized array.
    
    Also factor out the xfs_dir2_leaf_size, to make the sizing of a leaf
    entry which already was convoluted somewhat readable after using the
    longer type names in the sizeof expressions.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Alex Elder <aelder@xxxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit 3ed8638f8867b4d0df1ec606231a087ff06c4a59
Author: Christoph Hellwig <hch@xxxxxx>
Date:   Fri Jul 8 14:35:50 2011 +0200

    xfs: cleanup the definition of struct xfs_dir2_data_entry
    
    Remove the tag member which is at a variable offset after the actual
    name, and make name a real variable sized C99 array instead of the incorrect
    one-sized array which confuses (not only) gcc.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Alex Elder <aelder@xxxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit 0ba9cd84ef2af58645333a86f9c901684ab1fef6
Author: Christoph Hellwig <hch@xxxxxx>
Date:   Fri Jul 8 14:35:42 2011 +0200

    xfs: kill struct xfs_dir2_data
    
    Remove the confusing xfs_dir2_data structure.  It is supposed to describe
    an XFS dir2 data btree block, but due to the variable sized nature of
    almost all elements in it it can't actuall do anything close to that
    job.  In addition to accessing the fixed offset header structure it was
    only used to get a pointer to the first dir or unused entry after it,
    which can be trivially replaced by pointer arithmetics on the header
    pointer.  For most users that is actually more natural anyway, as they
    don't use a typed pointer but rather a character pointer for further
    arithmetics.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Alex Elder <aelder@xxxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit c2066e2662070e794f57a96a129c42575e77cfcb
Author: Christoph Hellwig <hch@xxxxxx>
Date:   Fri Jul 8 14:35:38 2011 +0200

    xfs: avoid usage of struct xfs_dir2_data
    
    In most places we can simply pass around and use the struct 
xfs_dir2_data_hdr,
    which is the first and most important member of struct xfs_dir2_data instead
    of the full structure.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Alex Elder <aelder@xxxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit a64b04179735de6bfd9f00c130a68ed7f20d18ef
Author: Christoph Hellwig <hch@xxxxxx>
Date:   Fri Jul 8 14:35:32 2011 +0200

    xfs: kill struct xfs_dir2_block
    
    Remove the confusing xfs_dir2_block structure.  It is supposed to describe
    an XFS dir2 block format btree block, but due to the variable sized nature
    of almost all elements in it it can't actuall do anything close to that
    job.  In addition to accessing the fixed offset header structure it was
    only used to get a pointer to the first dir or unused entry after it,
    which can be trivially replaced by pointer arithmetics on the header
    pointer.  For most users that is actually more natural anyway, as they
    don't use a typed pointer but rather a character pointer for further
    arithmetics.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Alex Elder <aelder@xxxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit 4f6ae1a49ed5c81501d6f7385416bb4e07289e99
Author: Christoph Hellwig <hch@xxxxxx>
Date:   Fri Jul 8 14:35:27 2011 +0200

    xfs: avoid usage of struct xfs_dir2_block
    
    In most places we can simply pass around and use the struct 
xfs_dir2_data_hdr,
    which is the first and most important member of struct xfs_dir2_block 
instead
    of the full structure.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Alex Elder <aelder@xxxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit 78f70cd7b7e8fd44dc89af4f72fb110d865338a1
Author: Christoph Hellwig <hch@xxxxxx>
Date:   Fri Jul 8 14:35:19 2011 +0200

    xfs: cleanup the definition of struct xfs_dir2_sf_entry
    
    Remove the inumber member which is at a variable offset after the actual
    name, and make name a real variable sized C99 array instead of the incorrect
    one-sized array which confuses (not only) gcc.  Based on this clean up
    the helpers to calculate the entry size.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Alex Elder <aelder@xxxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit ac8ba50f6be4a3ab49a2ad2cb676422af4ebaf8a
Author: Christoph Hellwig <hch@xxxxxx>
Date:   Fri Jul 8 14:35:13 2011 +0200

    xfs: kill struct xfs_dir2_sf
    
    The list field of it is never cactually used, so all uses can simply be
    replaced with the xfs_dir2_sf_hdr_t type that it has as first member.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Alex Elder <aelder@xxxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit 8bc387875870c87087f138741f456983cbc54660
Author: Christoph Hellwig <hch@xxxxxx>
Date:   Fri Jul 8 14:35:03 2011 +0200

    xfs: cleanup shortform directory inode number handling
    
    Refactor the shortform directory helpers that deal with the 32-bit vs
    64-bit wide inode numbers into more sensible helpers, and kill the
    xfs_intino_t typedef that is now superflous.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Alex Elder <aelder@xxxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit 4fb44c8272a071290d2ad76164c532fa2902b604
Author: Christoph Hellwig <hch@xxxxxx>
Date:   Fri Jul 8 14:34:59 2011 +0200

    xfs: factor out xfs_dir2_leaf_find_entry
    
    Add a new xfs_dir2_leaf_find_entry helper to factor out some duplicate code
    from xfs_dir2_leaf_addname xfs_dir2_leafn_add.  Found by Eric Sandeen using
    an automated code duplication checker.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Alex Elder <aelder@xxxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit 29d104af0a92ba1eac74b636da7fcf88242e1180
Author: Christoph Hellwig <hch@xxxxxx>
Date:   Fri Jul 8 14:34:51 2011 +0200

    xfs: kill the unused struct xfs_sync_work
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Alex Elder <aelder@xxxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit f3ca87389dbff0a3dc1a7cb2fa7c62e25421c66c
Author: Christoph Hellwig <hch@xxxxxx>
Date:   Fri Jul 8 14:34:47 2011 +0200

    xfs: remove i_transp
    
    Remove the transaction pointer in the inode.  It's only used to avoid
    passing down an argument in the bmap code, and for a few asserts in
    the transaction code right now.
    
    Also use the local variable ip in a few more places in 
xfs_inode_item_unlock,
    so that it isn't only used for debug builds after the above change.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Alex Elder <aelder@xxxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit 7a249cf83da1813cfa71cfe1e265b40045eceb47
Author: Christoph Hellwig <hch@xxxxxx>
Date:   Fri Jul 8 14:34:42 2011 +0200

    xfs: fix filesystsem freeze race in xfs_trans_alloc
    
    As pointed out by Jan xfs_trans_alloc can race with a concurrent filesystem
    freeze when it sleeps during the memory allocation.  Fix this by moving the
    wait_for_freeze call after the memory allocation.  This means moving the
    freeze into the low-level _xfs_trans_alloc helper, which thus grows a new
    argument.  Also fix up some comments in that area while at it.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Alex Elder <aelder@xxxxxxx>
    Reviewed-by: Dave Chinner <david@xxxxxxxxxxxxx>

commit 33b8f7c2479dfcbc5c27174e44b5f659d9f33c70
Author: Christoph Hellwig <hch@xxxxxx>
Date:   Fri Jul 8 14:34:39 2011 +0200

    xfs: improve sync behaviour in the face of aggressive dirtying
    
    The following script from Wu Fengguang shows very bad behaviour in XFS
    when aggressively dirtying data during a sync on XFS, with sync times
    up to almost 10 times as long as ext4.
    
    A large part of the issue is that XFS writes data out itself two times
    in the ->sync_fs method, overriding the livelock protection in the core
    writeback code, and another issue is the lock-less xfs_ioend_wait call,
    which doesn't prevent new ioend from being queue up while waiting for
    the count to reach zero.
    
    This patch removes the XFS-internal sync calls and relies on the VFS
    to do it's work just like all other filesystems do.  Note that the
    i_iocount wait which is rather suboptimal is simply removed here.
    We already do it in ->write_inode, which keeps the current supoptimal
    behaviour.  We'll eventually need to remove that as well, but that's
    material for a separate commit.
    
    ------------------------------ snip ------------------------------
    #!/bin/sh
    
    umount /dev/sda7
    mkfs.xfs -f /dev/sda7
    # mkfs.ext4 /dev/sda7
    # mkfs.btrfs /dev/sda7
    mount /dev/sda7 /fs
    
    echo $((50<<20)) > /proc/sys/vm/dirty_bytes
    
    pid=
    for i in `seq 10`
    do
        dd if=/dev/zero of=/fs/zero-$i bs=1M count=1000 &
        pid="$pid $!"
    done
    
    sleep 1
    
    tic=$(date +'%s')
    sync
    tac=$(date +'%s')
    
    echo
    echo sync time: $((tac-tic))
    egrep '(Dirty|Writeback|NFS_Unstable)' /proc/meminfo
    
    pidof dd > /dev/null && { kill -9 $pid; echo sync NOT livelocked; }
    ------------------------------ snip ------------------------------
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reported-by: Wu Fengguang <fengguang.wu@xxxxxxxxx>
    Reviewed-by: Alex Elder <aelder@xxxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit 8f04c47aa9712874af2c8816c2ca2a332cba80e4
Author: Christoph Hellwig <hch@xxxxxx>
Date:   Fri Jul 8 14:34:34 2011 +0200

    xfs: split xfs_itruncate_finish
    
    Split the guts of xfs_itruncate_finish that loop over the existing extents
    and calls xfs_bunmapi on them into a new helper, xfs_itruncate_externs.
    Make xfs_attr_inactive call it directly instead of xfs_itruncate_finish,
    which allows to simplify the latter a lot, by only letting it deal with
    the data fork.  As a result xfs_itruncate_finish is renamed to
    xfs_itruncate_data to make its use case more obvious.
    
    Also remove the sync parameter from xfs_itruncate_data, which has been
    unessecary since the introduction of the busy extent list in 2002, and
    completely dead code since 2003 when the XFS_BMAPI_ASYNC parameter was
    made a no-op.
    
    I can't actually see why the xfs_attr_inactive needs to set the transaction
    sync, but let's keep this patch simple and without changes in behaviour.
    
    Also avoid passing a useless argument to xfs_isize_check, and make it
    private to xfs_inode.c.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Alex Elder <aelder@xxxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit 857b9778d86ccba7d7b42c9d8aeecde794ec8a6b
Author: Christoph Hellwig <hch@xxxxxx>
Date:   Fri Jul 8 14:34:30 2011 +0200

    xfs: kill xfs_itruncate_start
    
    xfs_itruncate_start is a rather length wrapper that evaluates to a call
    to xfs_ioend_wait and xfs_tosspages, and only has two callers.
    
    Instead of using the complicated checks left over from IRIX where we
    can to truncate the pagecache just call xfs_tosspages
    (aka truncate_inode_pages) directly as we want to get rid of all data
    after i_size, and truncate_inode_pages handles incorrect alignments
    and too large offsets just fine.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Alex Elder <aelder@xxxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit 681b120018e3c7e2680c93e8188c5ee34215df2f
Author: Christoph Hellwig <hch@xxxxxx>
Date:   Fri Jul 8 14:34:26 2011 +0200

    xfs: always log timestamp updates in xfs_setattr_size
    
    Get rid of the special case where we use unlogged timestamp updates for
    a truncate to the current inode size, and just call xfs_setattr_nonsize
    for it to treat it like a utimes calls.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Alex Elder <aelder@xxxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit c4ed4243c40f97ed5b7b121777bbbc6aeaa722f0
Author: Christoph Hellwig <hch@xxxxxx>
Date:   Fri Jul 8 14:34:23 2011 +0200

    xfs: split xfs_setattr
    
    Split up xfs_setattr into two functions, one for the complex truncate
    handling, and one for the trivial attribute updates.  Also move both
    new routines to xfs_iops.c as they are fairly Linux-specific.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Alex Elder <aelder@xxxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit dec58f1dfd30a3c3e9dadc808692f4e5cd922745
Author: Christoph Hellwig <hch@xxxxxx>
Date:   Fri Jul 8 14:34:18 2011 +0200

    xfs: work around bogus gcc warning in xfs_allocbt_init_cursor
    
    GCC 4.6 complains about an array subscript is above array bounds when
    using the btree index to index into the agf_levels array.  The only
    two indices passed in are 0 and 1, and we have an assert insuring that.
    
    Replace the trick of using the array index directly with using constants
    in the already existing branch for assigning the XFS_BTREE_LASTREC_UPDATE
    flag.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Alex Elder <aelder@xxxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit dbcdde3e76f45d56c4a30ca6c5d69b6d473d3fd1
Author: Christoph Hellwig <hch@xxxxxx>
Date:   Fri Jul 8 14:34:14 2011 +0200

    xfs: re-enable non-blocking behaviour in xfs_map_blocks
    
    The non-blockig behaviour in xfs_vm_writepage currently is conditional on
    having both the WB_SYNC_NONE sync_mode and the nonblocking flag set.
    The latter used to be used by both pdflush, kswapd and a few other places
    in older kernels, but has been fading out starting with the introduction
    of the per-bdi flusher threads.
    
    Enable the non-blocking behaviour for all WB_SYNC_NONE calls to get back
    the behaviour we want.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Signed-off-by: Alex Elder <aelder@xxxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit 680a647b49fa52de0b37b8bc58a3a8c4bc76b262
Author: Christoph Hellwig <hch@xxxxxx>
Date:   Fri Jul 8 14:34:05 2011 +0200

    xfs: PF_FSTRANS should never be set in ->writepage
    
    Now that we reject direct reclaim in addition to always using GFP_NOFS
    allocation there's no chance we'll ever end up in ->writepage with
    PF_FSTRANS set.  Add a WARN_ON if we hit this case, and stop checking
    if we'd actually need to start a transaction.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Alex Elder <aelder@xxxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

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

Summary of changes:
 fs/xfs/linux-2.6/xfs_acl.c     |    2 +-
 fs/xfs/linux-2.6/xfs_aops.c    |   19 +--
 fs/xfs/linux-2.6/xfs_buf.c     |   69 ++----
 fs/xfs/linux-2.6/xfs_buf.h     |   54 ++---
 fs/xfs/linux-2.6/xfs_file.c    |    2 +-
 fs/xfs/linux-2.6/xfs_iops.c    |  433 ++++++++++++++++++++++++++++++++-
 fs/xfs/linux-2.6/xfs_linux.h   |    7 +-
 fs/xfs/linux-2.6/xfs_sync.c    |    8 +-
 fs/xfs/linux-2.6/xfs_sync.h    |    8 -
 fs/xfs/linux-2.6/xfs_trace.h   |   48 +---
 fs/xfs/quota/xfs_dquot.c       |    6 +-
 fs/xfs/quota/xfs_qm_syscalls.c |    2 +-
 fs/xfs/quota/xfs_trans_dquot.c |    2 +-
 fs/xfs/xfs_alloc.c             |   14 +-
 fs/xfs/xfs_alloc_btree.c       |    9 +-
 fs/xfs/xfs_arch.h              |  136 ----------
 fs/xfs/xfs_attr.c              |   41 ++--
 fs/xfs/xfs_attr_leaf.c         |   60 +++---
 fs/xfs/xfs_bmap.c              |   37 ++--
 fs/xfs/xfs_bmap_btree.c        |    8 +-
 fs/xfs/xfs_btree.c             |   28 +-
 fs/xfs/xfs_buf_item.c          |    6 +-
 fs/xfs/xfs_da_btree.c          |   69 +++---
 fs/xfs/xfs_dir2.c              |    6 +-
 fs/xfs/xfs_dir2_block.c        |  246 +++++++++----------
 fs/xfs/xfs_dir2_block.h        |   49 ++--
 fs/xfs/xfs_dir2_data.c         |  320 +++++++++++++------------
 fs/xfs/xfs_dir2_data.h         |   50 ++--
 fs/xfs/xfs_dir2_leaf.c         |  386 ++++++++++++++++-------------
 fs/xfs/xfs_dir2_leaf.h         |   40 +++-
 fs/xfs/xfs_dir2_node.c         |  185 +++++----------
 fs/xfs/xfs_dir2_sf.c           |  330 +++++++++++++++----------
 fs/xfs/xfs_dir2_sf.h           |   94 +++-----
 fs/xfs/xfs_fs.h                |    5 +
 fs/xfs/xfs_fsops.c             |    2 +-
 fs/xfs/xfs_ialloc.c            |   14 +-
 fs/xfs/xfs_inode.c             |  528 ++++++++++------------------------------
 fs/xfs/xfs_inode.h             |   25 +--
 fs/xfs/xfs_inode_item.c        |   13 +-
 fs/xfs/xfs_inum.h              |   11 -
 fs/xfs/xfs_iomap.c             |    3 +-
 fs/xfs/xfs_log.c               |   34 ++--
 fs/xfs/xfs_log_recover.c       |   30 ++-
 fs/xfs/xfs_mount.c             |   66 ++---
 fs/xfs/xfs_trans.c             |   27 +--
 fs/xfs/xfs_trans.h             |   10 +-
 fs/xfs/xfs_trans_buf.c         |    4 +-
 fs/xfs/xfs_trans_inode.c       |    9 -
 fs/xfs/xfs_vnodeops.c          |  479 +-----------------------------------
 fs/xfs/xfs_vnodeops.h          |    3 +-
 50 files changed, 1770 insertions(+), 2267 deletions(-)
 delete mode 100644 fs/xfs/xfs_arch.h


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-18993-g81463b1, xfs <=