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 _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs