xfs
[Top] [All Lists]

[XFS updates] XFS development tree branch, master, updated. v2.6.34-9510

To: xfs@xxxxxxxxxxx
Subject: [XFS updates] XFS development tree branch, master, updated. v2.6.34-9510-g04d2da9
From: xfs@xxxxxxxxxxx
Date: Fri, 2 Jul 2010 17:07:43 -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
  04d2da9 xfs: split xfs_itrace_entry
  40cf20e xfs: remove xfs_iput
  9c54f48 xfs: remove xfs_iput_new
  7df0916 xfs: some iget tracing cleanups / fixes
  13cd0dc xfs: do not use emums for flags used in tracing
  35d7097 xfs: remove explicit xfs_sync_data/xfs_sync_attr calls on umount
  9b9ab1e xfs: small cleanups for xfs_iomap / __xfs_get_blocks
  3ac7b86 xfs: reduce stack usage in xfs_iomap
  c921a20 xfs: avoid synchronous transaction in xfs_fs_write_inode
  b7227df xfs: simplify xfs_vm_writepage
  5e2e467 xfs: simplify xfs_vm_releasepage
  55683d8 xfs: fix corruption case for block size < page size
  ecb7fb7 xfs: remove unused delta tracking code in xfs_bmapi
  b1f0b2c4 xfs: remove unused XFS_BMAPI_ flags
  90405d0 xfs: remove the unused XFS_TRANS_NOSLEEP/XFS_TRANS_WAIT flags
  d03a406 xfs: remove the unused XFS_LOG_SLEEP and XFS_LOG_NOSLEEP flags
  fc1d6b5 xfs: kill the unused xlog_debug variable
  baa3bf2 xfs: fix the xfs_log_iovec i_addr type
  f8ad0a9 xfs: simplify inode to transaction joining
  21232bc xfs: simplify buffer pinning
  54c4ec2 xfs: give li_cb callbacks the correct prototype
  d06d42b xfs: give xfs_item_ops methods the correct prototypes
  6bb167b xfs: merge iop_unpin_remove into iop_unpin
  dec049a xfs: simplify log item descriptor tracking
  e7f0f60 xfs: remove unneeded #include statements
  483cc23 xfs: drop dmapi hooks
  7b6259e xfs: remove block number from inode lookup code
  1920779 xfs: rename XFS_IGET_BULKSTAT to XFS_IGET_UNTRUSTED
  7124fe0 xfs: validate untrusted inode numbers during lookup
  7dce11d xfs: always use iget in bulkstat
  1817176 xfs: prevent swapext from operating on write-only files
  254c8c2 xfs: remove nr_to_write writeback windup.
  1bf7dbf Merge branch 'master' into for-linus
  7ea8085 drop unused dentry argument to ->fsync
  88e8837 Merge branch 'delayed-logging-for-2.6.35' into for-linus
  e8bebe2 Merge branch 'for-linus' of 
git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6
  46e5876 xfs: constify xattr_handler
  ee9a360 Merge branch 'master' into for-2.6.35
  c472b43 quota: unify ->set_dqblk
  b9b2dd3 quota: unify ->get_dqblk
  7407cf3 Merge branch 'master' into for-2.6.35
  fbd9b09 blkdev: generalize flags for blkdev_issue_fn functions
      from  f9369729496a0f4c607a4cc1ea4dfeddbbfc505a (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 04d2da9c682ce2687db29136c60d8679e37e3b35
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Thu Jun 24 11:57:09 2010 +1000

    xfs: split xfs_itrace_entry
    
    Replace the xfs_itrace_entry catchall with specific trace points.  For
    most simple callers we now use the simple inode class, which used to
    be the iget class, but add more details tracing for namespace events,
    which now includes the name of the directory entries manipulated.
    
    Remove the xfs_inactive trace point, which is a duplicate of the clear_inode
    one, and the xfs_change_file_space trace point, which is immediately
    followed by the more specific alloc/free space trace points.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit 40cf20e1aaa0c94fa3ca37705a9db5b827a99273
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Thu Jun 24 11:52:50 2010 +1000

    xfs: remove xfs_iput
    
    xfs_iput is just a small wrapper for xfs_iunlock + IRELE.  Having this
    out of line wrapper means the trace events in those two can't track
    their caller properly.  So just remove the wrapper and opencode the
    unlock + rele in the few callers.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit 9c54f48f2af30d15e1f5e3144af036a0837a116e
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Thu Jun 24 11:51:19 2010 +1000

    xfs: remove xfs_iput_new
    
    We never get an i_mode of 0 or a locked VFS inode until we pass in the
    XFS_IGET_CREATE flag to xfs_iget, which makes xfs_iput_new equivalent to
    xfs_iput for the only caller.  In addition to that xfs_nfs_get_inode
    does not even need to lock the inode given that the generation never changes
    for a life inode, so just pass a 0 lock_flags to xfs_iget and release
    the inode using IRELE in the error path.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit 7df0916509fbfe2d8bd3490de1e39bb0d2ffc6bb
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Thu Jun 24 11:50:22 2010 +1000

    xfs: some iget tracing cleanups / fixes
    
    The xfs_iget_alloc/found tracepoints are a bit misnamed and misplaced.
    Rename them to xfs_iget_hit/xfs_iget_miss and move them to the beggining
    of the xfs_iget_cache_hit/miss functions.  Add a new xfs_iget_reclaim_fail
    tracepoint for the case where we fail to re-initialize a VFS inode,
    and add a second instance of the xfs_iget_skip tracepoint for the case
    of a failed igrab() call.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit 13cd0dca8c7b52b5e80059ef7a21735521df1a96
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Thu Jun 24 11:49:12 2010 +1000

    xfs: do not use emums for flags used in tracing
    
    The tracing code can't print flags defined as enums.  Most flags that
    we want to print are defines as macros already, but move the few remaining
    ones over to make the trace output more useful.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit 35d7097b403c958c788e71428fa108cfb07456c7
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Thu Jun 24 11:45:34 2010 +1000

    xfs: remove explicit xfs_sync_data/xfs_sync_attr calls on umount
    
    On the final put of a superblock the VFS already calls sync_filesystem
    for us to write out all data and wait for it.  No need to start another
    asynchronous writeback inside ->put_super.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit 9b9ab1e4672253ee18bae00edb991f8497a6a7d7
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Thu Jun 24 11:44:35 2010 +1000

    xfs: small cleanups for xfs_iomap / __xfs_get_blocks
    
    Remove the flags argument to  __xfs_get_blocks as we can easily derive
    it from the direct argument, and remove the unused BMAPI_MMAP flag.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit 3ac7b865fae534c57c843fad3e4329329591d08e
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Thu Jun 24 11:42:19 2010 +1000

    xfs: reduce stack usage in xfs_iomap
    
    xfs_iomap passes a xfs_bmbt_irec pointer to xfs_iomap_write_direct and
    xfs_iomap_write_allocate to give them the results of our read-only
    xfs_bmapi query.  Instead of allocating a new xfs_bmbt_irec on stack
    for the next call to xfs_bmapi re use the one we got passed as it's not
    used after this point.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit c921a20399a561b50f7133035c56c7326e140340
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Thu Jun 24 11:39:25 2010 +1000

    xfs: avoid synchronous transaction in xfs_fs_write_inode
    
    We already rely on the fact that the sync code will cause a synchronous
    log force later on (currently via xfs_fs_sync_fs -> xfs_quiesce_data ->
    xfs_sync_data), so no need to do this here.  This allows us to avoid
    a lot of synchronous log forces during sync, which pays of especially
    with delayed logging enabled.   Some compilebench numbers that show
    this:
    
    xfs (delayed logging, 256k logbufs)
    ===================================
    
    intial create                 25.94 MB/s      25.75 MB/s      25.64 MB/s
    create                         8.54 MB/s       9.12 MB/s       9.15 MB/s
    patch                          2.47 MB/s       2.47 MB/s       3.17 MB/s
    compile                       29.65 MB/s      30.51 MB/s      27.33 MB/s
    clean                         90.92 MB/s      98.83 MB/s     128.87 MB/s
    read tree             11.90 MB/s      11.84 MB/s       8.56 MB/s
    read compiled                 28.75 MB/s      29.96 MB/s      24.25 MB/s
    delete tree         8.39 seconds    8.12 seconds    8.46 seconds
    delete compiled             8.35 seconds    8.44 seconds    5.11 seconds
    stat tree           6.03 seconds    5.59 seconds    5.19 seconds
    stat compiled tree  9.00 seconds    9.52 seconds    8.49 seconds
    
    xfs + write_inode log_force removal
    ===================================
    intial create                 25.87 MB/s      25.76 MB/s      25.87 MB/s
    create                        15.18 MB/s      14.80 MB/s      14.94 MB/s
    patch                          3.13 MB/s       3.14 MB/s       3.11 MB/s
    compile                       36.74 MB/s      37.17 MB/s      36.84 MB/s
    clean                        226.02 MB/s     222.58 MB/s     217.94 MB/s
    read tree             15.14 MB/s      15.02 MB/s      15.14 MB/s
    read compiled tree    29.30 MB/s      29.31 MB/s      29.32 MB/s
    delete tree         6.22 seconds    6.14 seconds    6.15 seconds
    delete compiled tree        5.75 seconds    5.92 seconds    5.81 seconds
    stat tree           4.60 seconds    4.51 seconds    4.56 seconds
    stat compiled tree  4.07 seconds    3.87 seconds    3.96 seconds
    
    In addition to that also remove the delwri inode flush that is unessecary
    now that bulkstat is always coherent.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit b7227df1e6ea6cb8d7b31c455e9d588d00c54461
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Thu Jun 24 09:46:01 2010 +1000

    xfs: simplify xfs_vm_writepage
    
    The writepage implementation in XFS still tries to deal with dirty but
    unmapped buffers which used to caused by writes through shared mmaps.  Since
    the introduction of ->page_mkwrite these can't happen anymore, so remove the
    code dealing with them.
    
    Note that the all_bh variable which causes us to start I/O on all buffers on
    the pages was controlled by the count of unmapped buffers, which also
    included those not actually dirty.  It's now unconditionally initialized to
    0 but set to 1 for the case of small file size extensions.  It probably can
    be removed entirely, but that's left for another patch.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit 5e2e4677a71656a91b6172293f64e8a8f3cbafed
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Thu Jun 24 09:45:48 2010 +1000

    xfs: simplify xfs_vm_releasepage
    
    Currently the xfs releasepage implementation has code to deal with 
converting
    delayed allocated and unwritten space.  But we never get called for those as
    we always convert delayed and unwritten space when cleaning a page, or drop
    the state from the buffers in block_invalidatepage.  We still keep a WARN_ON
    on those cases for now, but remove all the case dealing with it, which 
allows
    to fold xfs_page_state_convert into xfs_vm_writepage and remove the !startio
    case from the whole writeback path.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit 55683d8397e214a9ea08e90b9755bb63456e140b
Author: Eric Sandeen <sandeen@xxxxxxxxxxx>
Date:   Thu Jun 24 09:45:30 2010 +1000

    xfs: fix corruption case for block size < page size
    
    xfstests 194 first truncats a file back and then extends it again by
    truncating it to a larger size.  This causes discard_buffer to drop
    the mapped, but not the uptodate bit and thus creates something that
    xfs_page_state_convert takes for unmapped space created by mmap because
    it doesn't check for the dirty bit, which also gets cleared by
    discard_buffer and checked by other ->writepage implementations like
    block_write_full_page.  Handle this kind of buffers early, and unlike
    Eric's first version of the patch simply ASSERT that the buffers is
    dirty, given that the mmap write case can't happen anymore since the
    introduction of ->page_mkwrite.  The now dead code dealing with that
    will be deleted in a follow on patch.
    
    Signed-off-by: Eric Sandeen <sandeen@xxxxxxxxxxx>
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit ecb7fb79f5100c1b1d1349f70af24cdc01d5b8a7
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Wed Jun 23 18:11:15 2010 +1000

    xfs: remove unused delta tracking code in xfs_bmapi
    
    This code was introduced four years ago in commit
    3e57ecf640428c01ba1ed8c8fc538447ada1715b without any review and has
    been unused since.  Remove it just as the rest of the code introduced
    in that commit to reduce that stack usage and complexity in this central
    piece of code.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit b1f0b2c4ea59ef4a17e526d591a5ab12b8a788b4
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Wed Jun 23 18:11:15 2010 +1000

    xfs: remove unused XFS_BMAPI_ flags
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit 90405d0217a8084f34d56cea566b6579b4fd4c75
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Wed Jun 23 18:11:15 2010 +1000

    xfs: remove the unused XFS_TRANS_NOSLEEP/XFS_TRANS_WAIT flags
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit d03a4065bb0b7daff105c486c15ffd875d1c67d7
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Wed Jun 23 18:11:15 2010 +1000

    xfs: remove the unused XFS_LOG_SLEEP and XFS_LOG_NOSLEEP flags
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit fc1d6b5aff9a580a5a45f33a79a06fb6c621bde9
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Wed Jun 23 18:11:15 2010 +1000

    xfs: kill the unused xlog_debug variable
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit baa3bf2b3037714c4802b035d3539621e87da528
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Wed Jun 23 18:11:15 2010 +1000

    xfs: fix the xfs_log_iovec i_addr type
    
    By making this member a void pointer we can get rid of a lot of pointless
    casts.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit f8ad0a99b85d9a7f3c748dec6a1d5392e97a6f05
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Thu Jun 24 11:36:58 2010 +1000

    xfs: simplify inode to transaction joining
    
    Currently we need to either call IHOLD or xfs_trans_ihold on an inode when
    joining it to a transaction via xfs_trans_ijoin.
    
    This patches instead makes xfs_trans_ijoin usable on it's own by doing
    an implicity xfs_trans_ihold, which also allows us to drop the third
    argument.  For the case where we want to hold a reference on the inode
    a xfs_trans_ijoin_ref wrapper is added which does the IHOLD and marks
    the inode for needing an xfs_iput.  In addition to the cleaner interface
    to the caller this also simplifies the implementation.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit 21232bc9fe3f84753fe8dbdb9113c8a8c98ad648
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Wed Jun 23 18:11:15 2010 +1000

    xfs: simplify buffer pinning
    
    Get rid of the xfs_buf_pin/xfs_buf_unpin/xfs_buf_ispin helpers and opencode
    them in their only callers, just like we did for the inode pinning a while
    ago.  Also remove duplicate trace points - the bufitem tracepoints cover
    all the information that is present in a buffer tracepoint.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit 54c4ec2b99c7d798f97150fd455111ecf7d6a133
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Wed Jun 23 18:11:15 2010 +1000

    xfs: give li_cb callbacks the correct prototype
    
    Stop the function pointer casting madness and give all the li_cb instances
    correct prototype.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit d06d42be75efe6ece46006900492ed98944126aa
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Wed Jun 23 18:11:15 2010 +1000

    xfs: give xfs_item_ops methods the correct prototypes
    
    Stop the function pointer casting madness and give all the xfs_item_ops the
    correct prototypes.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit 6bb167bf274b6472754f6faed24e1afa7373ff08
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Wed Jun 23 18:11:15 2010 +1000

    xfs: merge iop_unpin_remove into iop_unpin
    
    The unpin_remove item operation instances always share most of the
    implementation with the respective unpin implementation.  So instead
    of keeping two different entry points add a remove flag to the unpin
    operation and share the code more easily.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit dec049a8c9a07bdd1f01358b192889d7ef87b1fd
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Wed Jun 23 18:11:15 2010 +1000

    xfs: simplify log item descriptor tracking
    
    Currently we track log item descriptor belonging to a transaction using a
    complex opencoded chunk allocator.  This code has been there since day one
    and seems to work around the lack of an efficient slab allocator.
    
    This patch replaces it with dynamically allocated log item descriptors
    from a dedicated slab pool, linked to the transaction by a linked list.
    
    This allows to greatly simplify the log item descriptor tracking to the
    point where it's just a couple hundred lines in xfs_trans.c instead of
    a separate file.  The external API has also been simplified while we're
    at it - the xfs_trans_add_item and xfs_trans_del_item functions to add/
    delete items from a transaction have been simplified to the bare minium,
    and the xfs_trans_find_item function is replaced with a direct dereference
    of the li_desc field.  All debug code walking the list of log items in
    a transaction is down to a simple list_for_each_entry.
    
    Note that we could easily use a singly linked list here instead of the
    double linked list from list.h as the fastpath only does deletion from
    sequential traversal.  But given that we don't have one available as
    a library function yet I use the list.h functions for simplicity.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit e7f0f608611d132a3618f94b0074654d182c47a2
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Wed Jun 23 18:11:15 2010 +1000

    xfs: remove unneeded #include statements
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <david@xxxxxxxxxxxxx>

commit 483cc23865b68712437d3412cb9204d9329b7b08
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Wed Jun 23 18:11:15 2010 +1000

    xfs: drop dmapi hooks
    
    Dmapi support was never merged upstream, but we still have a lot of hooks
    bloating XFS for it, all over the fast pathes of the filesystem.
    
    This patch drops over 700 lines of dmapi overhead.  If we'll ever get HSM
    support in mainline at least the namespace events can be done much saner
    in the VFS instead of the individual filesystem, so it's not like this
    is much help for future work.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit 7b6259e7a83647948fa33a736cc832310c8d85aa
Author: Dave Chinner <dchinner@xxxxxxxxxx>
Date:   Thu Jun 24 11:35:17 2010 +1000

    xfs: remove block number from inode lookup code
    
    The block number comes from bulkstat based inode lookups to shortcut
    the mapping calculations. We ar enot able to trust anything from
    bulkstat, so drop the block number as well so that the correct
    lookups and mappings are always done.
    
    Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx>
    Reviewed-by: Christoph Hellwig <hch@xxxxxx>

commit 1920779e67cbf5ea8afef317777c5bf2b8096188
Author: Dave Chinner <dchinner@xxxxxxxxxx>
Date:   Thu Jun 24 11:15:47 2010 +1000

    xfs: rename XFS_IGET_BULKSTAT to XFS_IGET_UNTRUSTED
    
    Inode numbers may come from somewhere external to the filesystem
    (e.g. file handles, bulkstat information) and so are inherently
    untrusted. Rename the flag we use for these lookups to make it
    obvious we are doing a lookup of an untrusted inode number and need
    to verify it completely before trying to read it from disk.
    
    Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx>
    Reviewed-by: Christoph Hellwig <hch@xxxxxx>

commit 7124fe0a5b619d65b739477b3b55a20bf805b06d
Author: Dave Chinner <dchinner@xxxxxxxxxx>
Date:   Thu Jun 24 11:15:33 2010 +1000

    xfs: validate untrusted inode numbers during lookup
    
    When we decode a handle or do a bulkstat lookup, we are using an
    inode number we cannot trust to be valid. If we are deleting inode
    chunks from disk (default noikeep mode), then we cannot trust the on
    disk inode buffer for any given inode number to correctly reflect
    whether the inode has been unlinked as the di_mode nor the
    generation number may have been updated on disk.
    
    This is due to the fact that when we delete an inode chunk, we do
    not write the clusters back to disk when they are removed - instead
    we mark them stale to avoid them being written back potentially over
    the top of something that has been subsequently allocated at that
    location. The result is that we can have locations of disk that look
    like they contain valid inodes but in reality do not. Hence we
    cannot simply convert the inode number to a block number and read
    the location from disk to determine if the inode is valid or not.
    
    As a result, and XFS_IGET_BULKSTAT lookup needs to actually look the
    inode up in the inode allocation btree to determine if the inode
    number is valid or not.
    
    It should be noted even on ikeep filesystems, there is the
    possibility that blocks on disk may look like valid inode clusters.
    e.g. if there are filesystem images hosted on the filesystem. Hence
    even for ikeep filesystems we really need to validate that the inode
    number is valid before issuing the inode buffer read.
    
    Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx>
    Reviewed-by: Christoph Hellwig <hch@xxxxxx>

commit 7dce11dbac54fce777eea0f5fb25b2694ccd7900
Author: Christoph Hellwig <hch@xxxxxx>
Date:   Wed Jun 23 18:11:11 2010 +1000

    xfs: always use iget in bulkstat
    
    The non-coherent bulkstat versionsthat look directly at the inode
    buffers causes various problems with performance optimizations that
    make increased use of just logging inodes.  This patch makes bulkstat
    always use iget, which should be fast enough for normal use with the
    radix-tree based inode cache introduced a while ago.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

commit 1817176a86352f65210139d4c794ad2d19fc6b63
Author: Dan Rosenberg <dan.j.rosenberg@xxxxxxxxx>
Date:   Thu Jun 24 12:07:47 2010 +1000

    xfs: prevent swapext from operating on write-only files
    
    This patch prevents user "foo" from using the SWAPEXT ioctl to swap
    a write-only file owned by user "bar" into a file owned by "foo" and
    subsequently reading it.  It does so by checking that the file
    descriptors passed to the ioctl are also opened for reading.
    
    Signed-off-by: Dan Rosenberg <dan.j.rosenberg@xxxxxxxxx>
    Reviewed-by: Christoph Hellwig <hch@xxxxxx>

commit 254c8c2dbf0e06a560a5814eb90cb628adb2de66
Author: Dave Chinner <dchinner@xxxxxxxxxx>
Date:   Wed Jun 9 10:37:19 2010 +1000

    xfs: remove nr_to_write writeback windup.
    
    Now that the background flush code has been fixed, we shouldn't need to
    silently multiply the wbc->nr_to_write to get good writeback. Remove
    that code.
    
    Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx>
    Reviewed-by: Christoph Hellwig <hch@xxxxxx>
    Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>

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

Summary of changes:
 fs/xfs/Makefile                   |    4 +-
 fs/xfs/linux-2.6/xfs_acl.c        |    6 +-
 fs/xfs/linux-2.6/xfs_aops.c       |  465 +++++++++++--------------------------
 fs/xfs/linux-2.6/xfs_aops.h       |    2 +-
 fs/xfs/linux-2.6/xfs_buf.c        |   33 +---
 fs/xfs/linux-2.6/xfs_buf.h        |  111 ++++-----
 fs/xfs/linux-2.6/xfs_dmapi_priv.h |   28 ---
 fs/xfs/linux-2.6/xfs_export.c     |   15 +-
 fs/xfs/linux-2.6/xfs_file.c       |  111 +--------
 fs/xfs/linux-2.6/xfs_fs_subr.c    |    4 -
 fs/xfs/linux-2.6/xfs_fs_subr.h    |   25 --
 fs/xfs/linux-2.6/xfs_ioctl.c      |   34 +---
 fs/xfs/linux-2.6/xfs_ioctl32.c    |   21 +--
 fs/xfs/linux-2.6/xfs_iops.c       |   10 +-
 fs/xfs/linux-2.6/xfs_linux.h      |    1 -
 fs/xfs/linux-2.6/xfs_quotaops.c   |    9 +-
 fs/xfs/linux-2.6/xfs_super.c      |  158 ++++---------
 fs/xfs/linux-2.6/xfs_super.h      |    9 +-
 fs/xfs/linux-2.6/xfs_sync.c       |   18 +--
 fs/xfs/linux-2.6/xfs_sync.h       |    3 -
 fs/xfs/linux-2.6/xfs_trace.c      |    4 -
 fs/xfs/linux-2.6/xfs_trace.h      |  126 ++++++++---
 fs/xfs/linux-2.6/xfs_xattr.c      |    8 +-
 fs/xfs/quota/xfs_dquot.c          |  114 ++++------
 fs/xfs/quota/xfs_dquot_item.c     |  301 ++++++++++--------------
 fs/xfs/quota/xfs_qm.c             |   33 +--
 fs/xfs/quota/xfs_qm_bhv.c         |   10 -
 fs/xfs/quota/xfs_qm_stats.c       |   10 -
 fs/xfs/quota/xfs_qm_syscalls.c    |   56 ++---
 fs/xfs/quota/xfs_trans_dquot.c    |   35 +---
 fs/xfs/support/debug.c            |    1 -
 fs/xfs/xfs_acl.h                  |    4 +-
 fs/xfs/xfs_alloc.c                |    5 -
 fs/xfs/xfs_alloc.h                |   20 +-
 fs/xfs/xfs_alloc_btree.c          |    5 -
 fs/xfs/xfs_attr.c                 |   91 +++-----
 fs/xfs/xfs_attr_leaf.c            |    5 +-
 fs/xfs/xfs_bmap.c                 |  300 +++---------------------
 fs/xfs/xfs_bmap.h                 |   37 +---
 fs/xfs/xfs_bmap_btree.c           |    5 -
 fs/xfs/xfs_btree.c                |    5 -
 fs/xfs/xfs_buf_item.c             |  227 ++++++++----------
 fs/xfs/xfs_buf_item.h             |    2 +-
 fs/xfs/xfs_da_btree.c             |   14 +-
 fs/xfs/xfs_dfrag.c                |   21 +--
 fs/xfs/xfs_dir2.c                 |   11 +-
 fs/xfs/xfs_dir2_block.c           |    2 -
 fs/xfs/xfs_dir2_data.c            |    2 -
 fs/xfs/xfs_dir2_leaf.c            |    4 +-
 fs/xfs/xfs_dir2_node.c            |    2 -
 fs/xfs/xfs_dir2_sf.c              |    2 -
 fs/xfs/xfs_dmapi.h                |  170 --------------
 fs/xfs/xfs_dmops.c                |   55 -----
 fs/xfs/xfs_error.c                |    4 -
 fs/xfs/xfs_extfree_item.c         |  278 +++++++++-------------
 fs/xfs/xfs_filestream.c           |    4 -
 fs/xfs/xfs_fsops.c                |    7 +-
 fs/xfs/xfs_ialloc.c               |  146 +++++++-----
 fs/xfs/xfs_ialloc_btree.c         |    4 -
 fs/xfs/xfs_iget.c                 |   62 +-----
 fs/xfs/xfs_inode.c                |   40 +---
 fs/xfs/xfs_inode.h                |    8 +-
 fs/xfs/xfs_inode_item.c           |  252 +++++++-------------
 fs/xfs/xfs_inode_item.h           |   12 +-
 fs/xfs/xfs_iomap.c                |   76 +++----
 fs/xfs/xfs_iomap.h                |   22 +-
 fs/xfs/xfs_itable.c               |  293 ++++--------------------
 fs/xfs/xfs_itable.h               |   17 --
 fs/xfs/xfs_log.c                  |    7 +-
 fs/xfs/xfs_log.h                  |   11 +-
 fs/xfs/xfs_log_cil.c              |    4 +-
 fs/xfs/xfs_log_recover.c          |   44 ++---
 fs/xfs/xfs_mount.c                |    5 +-
 fs/xfs/xfs_mount.h                |   67 ------
 fs/xfs/xfs_rename.c               |   63 +----
 fs/xfs/xfs_rtalloc.c              |   13 +-
 fs/xfs/xfs_rw.c                   |   15 --
 fs/xfs/xfs_trans.c                |  211 +++++++++++------
 fs/xfs/xfs_trans.h                |  117 +---------
 fs/xfs/xfs_trans_ail.c            |    1 -
 fs/xfs/xfs_trans_buf.c            |   75 ++-----
 fs/xfs/xfs_trans_extfree.c        |   23 +--
 fs/xfs/xfs_trans_inode.c          |   76 +++----
 fs/xfs/xfs_trans_item.c           |  441 -----------------------------------
 fs/xfs/xfs_trans_priv.h           |   18 +--
 fs/xfs/xfs_utils.c                |    8 +-
 fs/xfs/xfs_vnodeops.c             |  291 +++++-------------------
 87 files changed, 1478 insertions(+), 3991 deletions(-)
 delete mode 100644 fs/xfs/linux-2.6/xfs_dmapi_priv.h
 delete mode 100644 fs/xfs/linux-2.6/xfs_fs_subr.h
 delete mode 100644 fs/xfs/xfs_dmapi.h
 delete mode 100644 fs/xfs/xfs_dmops.c
 delete mode 100644 fs/xfs/xfs_trans_item.c


hooks/post-receive
-- 
XFS development tree

<Prev in Thread] Current Thread [Next in Thread>
  • [XFS updates] XFS development tree branch, master, updated. v2.6.34-9510-g04d2da9, xfs <=