[XFS updates] XFS development tree branch, master, updated. v2.6.34-9510-g04d2da9
xfs at oss.sgi.com
xfs at oss.sgi.com
Fri Jul 2 17:07:43 CDT 2010
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 at infradead.org>
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 at lst.de>
Reviewed-by: Dave Chinner <dchinner at redhat.com>
commit 40cf20e1aaa0c94fa3ca37705a9db5b827a99273
Author: Christoph Hellwig <hch at infradead.org>
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 at lst.de>
Reviewed-by: Dave Chinner <dchinner at redhat.com>
commit 9c54f48f2af30d15e1f5e3144af036a0837a116e
Author: Christoph Hellwig <hch at infradead.org>
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 at lst.de>
Reviewed-by: Dave Chinner <dchinner at redhat.com>
commit 7df0916509fbfe2d8bd3490de1e39bb0d2ffc6bb
Author: Christoph Hellwig <hch at infradead.org>
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 at lst.de>
Reviewed-by: Dave Chinner <dchinner at redhat.com>
commit 13cd0dca8c7b52b5e80059ef7a21735521df1a96
Author: Christoph Hellwig <hch at infradead.org>
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 at lst.de>
Reviewed-by: Dave Chinner <dchinner at redhat.com>
commit 35d7097b403c958c788e71428fa108cfb07456c7
Author: Christoph Hellwig <hch at infradead.org>
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 at lst.de>
Reviewed-by: Dave Chinner <dchinner at redhat.com>
commit 9b9ab1e4672253ee18bae00edb991f8497a6a7d7
Author: Christoph Hellwig <hch at infradead.org>
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 at lst.de>
Reviewed-by: Dave Chinner <dchinner at redhat.com>
commit 3ac7b865fae534c57c843fad3e4329329591d08e
Author: Christoph Hellwig <hch at infradead.org>
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 at lst.de>
Reviewed-by: Dave Chinner <dchinner at redhat.com>
commit c921a20399a561b50f7133035c56c7326e140340
Author: Christoph Hellwig <hch at infradead.org>
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 at lst.de>
Reviewed-by: Dave Chinner <dchinner at redhat.com>
commit b7227df1e6ea6cb8d7b31c455e9d588d00c54461
Author: Christoph Hellwig <hch at infradead.org>
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 at lst.de>
Reviewed-by: Dave Chinner <dchinner at redhat.com>
commit 5e2e4677a71656a91b6172293f64e8a8f3cbafed
Author: Christoph Hellwig <hch at infradead.org>
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 at lst.de>
Reviewed-by: Dave Chinner <dchinner at redhat.com>
commit 55683d8397e214a9ea08e90b9755bb63456e140b
Author: Eric Sandeen <sandeen at sandeen.net>
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 at sandeen.net>
Signed-off-by: Christoph Hellwig <hch at lst.de>
Reviewed-by: Dave Chinner <dchinner at redhat.com>
commit ecb7fb79f5100c1b1d1349f70af24cdc01d5b8a7
Author: Christoph Hellwig <hch at infradead.org>
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 at lst.de>
Reviewed-by: Dave Chinner <dchinner at redhat.com>
commit b1f0b2c4ea59ef4a17e526d591a5ab12b8a788b4
Author: Christoph Hellwig <hch at infradead.org>
Date: Wed Jun 23 18:11:15 2010 +1000
xfs: remove unused XFS_BMAPI_ flags
Signed-off-by: Christoph Hellwig <hch at lst.de>
Reviewed-by: Dave Chinner <dchinner at redhat.com>
commit 90405d0217a8084f34d56cea566b6579b4fd4c75
Author: Christoph Hellwig <hch at infradead.org>
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 at lst.de>
Reviewed-by: Dave Chinner <dchinner at redhat.com>
commit d03a4065bb0b7daff105c486c15ffd875d1c67d7
Author: Christoph Hellwig <hch at infradead.org>
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 at lst.de>
Reviewed-by: Dave Chinner <dchinner at redhat.com>
commit fc1d6b5aff9a580a5a45f33a79a06fb6c621bde9
Author: Christoph Hellwig <hch at infradead.org>
Date: Wed Jun 23 18:11:15 2010 +1000
xfs: kill the unused xlog_debug variable
Signed-off-by: Christoph Hellwig <hch at lst.de>
Reviewed-by: Dave Chinner <dchinner at redhat.com>
commit baa3bf2b3037714c4802b035d3539621e87da528
Author: Christoph Hellwig <hch at infradead.org>
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 at lst.de>
Reviewed-by: Dave Chinner <dchinner at redhat.com>
commit f8ad0a99b85d9a7f3c748dec6a1d5392e97a6f05
Author: Christoph Hellwig <hch at infradead.org>
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 at lst.de>
Reviewed-by: Dave Chinner <dchinner at redhat.com>
commit 21232bc9fe3f84753fe8dbdb9113c8a8c98ad648
Author: Christoph Hellwig <hch at infradead.org>
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 at lst.de>
Reviewed-by: Dave Chinner <dchinner at redhat.com>
commit 54c4ec2b99c7d798f97150fd455111ecf7d6a133
Author: Christoph Hellwig <hch at infradead.org>
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 at lst.de>
Reviewed-by: Dave Chinner <dchinner at redhat.com>
commit d06d42be75efe6ece46006900492ed98944126aa
Author: Christoph Hellwig <hch at infradead.org>
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 at lst.de>
Reviewed-by: Dave Chinner <dchinner at redhat.com>
commit 6bb167bf274b6472754f6faed24e1afa7373ff08
Author: Christoph Hellwig <hch at infradead.org>
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 at lst.de>
Reviewed-by: Dave Chinner <dchinner at redhat.com>
commit dec049a8c9a07bdd1f01358b192889d7ef87b1fd
Author: Christoph Hellwig <hch at infradead.org>
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 at lst.de>
Reviewed-by: Dave Chinner <dchinner at redhat.com>
commit e7f0f608611d132a3618f94b0074654d182c47a2
Author: Christoph Hellwig <hch at infradead.org>
Date: Wed Jun 23 18:11:15 2010 +1000
xfs: remove unneeded #include statements
Signed-off-by: Christoph Hellwig <hch at lst.de>
Reviewed-by: Dave Chinner <david at fromorbit.com>
commit 483cc23865b68712437d3412cb9204d9329b7b08
Author: Christoph Hellwig <hch at infradead.org>
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 at lst.de>
Reviewed-by: Dave Chinner <dchinner at redhat.com>
commit 7b6259e7a83647948fa33a736cc832310c8d85aa
Author: Dave Chinner <dchinner at redhat.com>
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 at redhat.com>
Reviewed-by: Christoph Hellwig <hch at lst.de>
commit 1920779e67cbf5ea8afef317777c5bf2b8096188
Author: Dave Chinner <dchinner at redhat.com>
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 at redhat.com>
Reviewed-by: Christoph Hellwig <hch at lst.de>
commit 7124fe0a5b619d65b739477b3b55a20bf805b06d
Author: Dave Chinner <dchinner at redhat.com>
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 at redhat.com>
Reviewed-by: Christoph Hellwig <hch at lst.de>
commit 7dce11dbac54fce777eea0f5fb25b2694ccd7900
Author: Christoph Hellwig <hch at lst.de>
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 at lst.de>
Reviewed-by: Dave Chinner <dchinner at redhat.com>
commit 1817176a86352f65210139d4c794ad2d19fc6b63
Author: Dan Rosenberg <dan.j.rosenberg at gmail.com>
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 at gmail.com>
Reviewed-by: Christoph Hellwig <hch at lst.de>
commit 254c8c2dbf0e06a560a5814eb90cb628adb2de66
Author: Dave Chinner <dchinner at redhat.com>
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 at redhat.com>
Reviewed-by: Christoph Hellwig <hch at lst.de>
Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-----------------------------------------------------------------------
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
More information about the xfs
mailing list