[XFS updates] XFS development tree branch, for-linus, updated. v2.6.30-rc4-24750-g44a743f
xfs at oss.sgi.com
xfs at oss.sgi.com
Fri Dec 11 15:24:58 CST 2009
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "XFS development tree".
The branch, for-linus has been updated
44a743f xfs: Fix error return for fallocate() on XFS
30ac068 xfs: cleanup dmapi macros in the umount path
0c3dc2b xfs: remove incorrect sparse annotation for xfs_iget_cache_miss
b8f82a4 xfs: kill the STATIC_INLINE macro
5683f53 xfs: uninline xfs_get_extsz_hint
e82fa0c xfs: rename xfs_attr_fetch to xfs_attr_get_int
6ad112b xfs: simplify xfs_buf_get / xfs_buf_read interfaces
c355c65 xfs: remove IO_ISAIO
fc5bc4c xfs: Wrapped journal record corruption on read at recovery
5ec4fab xfs: cleanup data end I/O handlers
06342cf xfs: use WRITE_SYNC_PLUG for synchronous writeout
033da48 xfs: reset the i_iolock lock class in the reclaim path
80641dc xfs: I/O completion handlers must use NOFS allocations
c56c963 xfs: fix mmap_sem/iolock inversion in xfs_free_eofblocks
848ce8f xfs: simplify inode teardown
from 22763c5cf3690a681551162c15d34d935308c8d7 (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 44a743f68705c681439f264deb05f8f38e9048d3
Author: Jason Gunthorpe <jgunthorpe at obsidianresearch.com>
Date: Tue Nov 24 21:52:53 2009 +0000
xfs: Fix error return for fallocate() on XFS
Noticed that through glibc fallocate would return 28 rather than -1
and errno = 28 for ENOSPC. The xfs routines uses XFS_ERROR format
positive return error codes while the syscalls use negative return
codes. Fixup the two cases in xfs_vn_fallocate syscall to convert to
negative.
Signed-off-by: Jason Gunthorpe <jgunthorpe at obsidianresearch.com>
Reviewed-by: Eric Sandeen <sandeen at sandeen.net>
Signed-off-by: Alex Elder <aelder at sgi.com>
commit 30ac0683dd452ba273c8db92a74d8cf7aef981d8
Author: Christoph Hellwig <hch at infradead.org>
Date: Sat Nov 14 16:17:24 2009 +0000
xfs: cleanup dmapi macros in the umount path
Stop the flag saving as we never mangle those in the unmount path, and
hide all the weird arguents to the dmapi code inside the
XFS_SEND_PREUNMOUNT / XFS_SEND_UNMOUNT macros.
Signed-off-by: Christoph Hellwig <hch at lst.de>
Reviewed-by: Dave Chinner <david at fromorbit.com>
Signed-off-by: Alex Elder <aelder at sgi.com>
commit 0c3dc2b02a4996c13e26eb91296e8a309e0c6227
Author: Christoph Hellwig <hch at infradead.org>
Date: Sat Nov 14 16:17:23 2009 +0000
xfs: remove incorrect sparse annotation for xfs_iget_cache_miss
xfs_iget_cache_miss does not get called with the pag_ici_lock held, so
the __releases annotation is incorrect.
Signed-off-by: Christoph Hellwig <hch at lst.de>
Reviewed-by: Dave Chinner <david at fromorbit.com>
Signed-off-by: Alex Elder <aelder at sgi.com>
commit b8f82a4a6fc79fcb4b2eb81252020e04c9b49da5
Author: Christoph Hellwig <hch at infradead.org>
Date: Sat Nov 14 16:17:22 2009 +0000
xfs: kill the STATIC_INLINE macro
Remove our own STATIC_INLINE macro. For small function inside
implementation files just use STATIC and let gcc inline it, and for
those in headers do the normal static inline - they are all small
enough to be inlined for debug builds, too.
Signed-off-by: Christoph Hellwig <hch at lst.de>
Reviewed-by: Dave Chinner <david at fromorbit.com>
Signed-off-by: Alex Elder <aelder at sgi.com>
commit 5683f53e36235234f7861909fdff878ff1f1bb20
Author: Christoph Hellwig <hch at infradead.org>
Date: Sat Nov 14 16:17:21 2009 +0000
xfs: uninline xfs_get_extsz_hint
This function is too large to efficiently be inlined.
Signed-off-by: Christoph Hellwig <hch at lst.de>
Reviewed-by: Dave Chinner <david at fromorbit.com>
Signed-off-by: Alex Elder <aelder at sgi.com>
commit e82fa0c7ca29b805388aa51d3cad2cb7a4df3084
Author: Christoph Hellwig <hch at infradead.org>
Date: Sat Nov 14 16:17:20 2009 +0000
xfs: rename xfs_attr_fetch to xfs_attr_get_int
Using a totally different name for the low-level get operation does
not fit the _int convention used in the rest of the attr code, so
rename it.
While we're at it also fix the prototype to use the normal convention
and mark it static as it's never used outside of xfs_attr.c.
Signed-off-by: Christoph Hellwig <hch at lst.de>
Reviewed-by: Dave Chinner <david at fromorbit.com>
Reviewed-by: Eric Sandeen <sandeen at sandeen.net>
Signed-off-by: Alex Elder <aelder at sgi.com>
commit 6ad112bfb5af537e9e3103c807748bb4a99bbd9e
Author: Christoph Hellwig <hch at infradead.org>
Date: Tue Nov 24 18:02:23 2009 +0000
xfs: simplify xfs_buf_get / xfs_buf_read interfaces
Currently the low-level buffer cache interfaces are highly confusing
as we have a _flags variant of each that does actually respect the
flags, and one without _flags which has a flags argument that gets
ignored and overriden with a default set. Given that very few places
use the default arguments get rid of the duplication and convert all
callers to pass the flags explicitly. Also remove the now confusing
_flags postfix.
Signed-off-by: Christoph Hellwig <hch at lst.de>
Reviewed-by: Dave Chinner <david at fromorbit.com>
Signed-off-by: Alex Elder <aelder at sgi.com>
commit c355c656fede21f6e967816a603905f0ad6a7311
Author: Christoph Hellwig <hch at infradead.org>
Date: Sat Nov 14 16:17:18 2009 +0000
xfs: remove IO_ISAIO
We set the IO_ISAIO flag for all read/write I/O since early Linux
2.6.x. Remove it as it has lost it's purpose long ago.
Signed-off-by: Christoph Hellwig <hch at lst.de>
Reviewed-by: Dave Chinner <david at fromorbit.com>
Reviewed-by: Eric Sandeen <sandeen at sandeen.net>
Signed-off-by: Alex Elder <aelder at sgi.com>
commit fc5bc4c85c45f0bf854404e5736aa8b65720a18d
Author: Andy Poling <andy at realbig.com>
Date: Tue Nov 3 17:26:47 2009 +0000
xfs: Wrapped journal record corruption on read at recovery
Summary of problem:
If a journal record wraps at the physical end of the journal, it has to be
read in two parts in xlog_do_recovery_pass(): a read at the physical end and a
read at the physical beginning. If xlog_bread() has to re-align the first
read, the second read request does not take that re-alignment into account.
If the first read was re-aligned, the second read over-writes the end of the
data from the first read, effectively corrupting it. This can happen either
when reading the record header or reading the record data.
The first sanity check in xlog_recover_process_data() is to check for a valid
clientid, so that is the error reported.
Summary of fix:
If there was a first read at the physical end, XFS_BUF_PTR() returns where the
data was requested to begin. Conversely, because it is the result of
xlog_align(), offset indicates where the requested data for the first read
actually begins - whether or not xlog_bread() has re-aligned it.
Using offset as the base for the calculation of where to place the second read
data ensures that it will be correctly placed immediately following the data
from the first read instead of sometimes over-writing the end of it.
The attached patch has resolved the reported problem of occasional inability
to recover the journal (reporting "bad clientid").
Signed-off-by: Andy Poling <andy at realbig.com>
Reviewed-by: Alex Elder <aelder at sgi.com>
Signed-off-by: Alex Elder <aelder at sgi.com>
commit 5ec4fabb02fcb5b4a4154a27e4299af5aa0f87ac
Author: Christoph Hellwig <hch at infradead.org>
Date: Fri Oct 30 09:11:47 2009 +0000
xfs: cleanup data end I/O handlers
Currently we have different end I/O handlers for read vs the different
types of write I/O. But they are all very similar so we could just
use one with a few conditionals and reduce code size a lot.
Signed-off-by: Christoph Hellwig <hch at lst.de>
Reviewed-by: Alex Elder <aelder at sgi.com>
Signed-off-by: Alex Elder <aelder at sgi.com>
commit 06342cf8adb23464deae0f58f8bcb87818a3bee6
Author: Christoph Hellwig <hch at infradead.org>
Date: Fri Oct 30 09:09:15 2009 +0000
xfs: use WRITE_SYNC_PLUG for synchronous writeout
The VM and I/O schedulers now expect us to use WRITE_SYNC_PLUG for
synchronous writeout. Right now I can't see any changes in performance
numbers with this, but we're getting some beating for not using it,
and the knowledge definitely could help the block code to make better
decisions.
Signed-off-by: Christoph Hellwig <hch at lst.de>
Reviewed-by: Alex Elder <aelder at sgi.com>
Signed-off-by: Alex Elder <aelder at sgi.com>
commit 033da48fda9d56e28b3fe3ef87ef6fd43290f554
Author: Christoph Hellwig <hch at infradead.org>
Date: Mon Oct 19 04:05:26 2009 +0000
xfs: reset the i_iolock lock class in the reclaim path
The iolock is used for protecting reads, writes and block truncates
against each other. We have two classes of callers, the first one is
induced by a file operation and requires a reference to the inode be
held and not dropped after the operation is done:
- xfs_vm_vmap, xfs_vn_fallocate, xfs_read, xfs_write, xfs_splice_read,
xfs_splice_write and xfs_setattr are all implementations of VFS
methods that require a live inode
- xfs_getbmap and xfs_swap_extents are ioctl subcommand for which the
same is true
- xfs_truncate_file is only called on quota inodes just returned from
xfs_iget
- xfs_sync_inode_data does the lock just after an igrab()
- xfs_filestream_associate and xfs_filestream_new_ag take the iolock
on the parent inode of an inode which by VFS rules must be referenced
And we have various calls to truncate blocks past EOF or the whole
file when dropping the last reference to an inode. Unfortunately
lockdep complains when we do memory allocations that can recurse into
the filesystem in the first class because the second class happens to
take the same lock. To avoid this re-init the iolock in the beginning
of xfs_fs_clear_inode to get a new lock class.
Signed-off-by: Christoph Hellwig <hch at lst.de>
Reviewed-by: Alex Elder <aelder at sgi.com>
Signed-off-by: Alex Elder <aelder at sgi.com>
commit 80641dc66a2d6dfb22af4413227a92b8ab84c7bb
Author: Christoph Hellwig <hch at infradead.org>
Date: Mon Oct 19 04:00:03 2009 +0000
xfs: I/O completion handlers must use NOFS allocations
When completing I/O requests we must not allow the memory allocator to
recurse into the filesystem, as we might deadlock on waiting for the
I/O completion otherwise. The only thing currently allocating normal
GFP_KERNEL memory is the allocation of the transaction structure for
the unwritten extent conversion. Add a memflags argument to
_xfs_trans_alloc to allow controlling the allocator behaviour.
Signed-off-by: Christoph Hellwig <hch at lst.de>
Reported-by: Thomas Neumann <tneumann at users.sourceforge.net>
Tested-by: Thomas Neumann <tneumann at users.sourceforge.net>
Reviewed-by: Alex Elder <aelder at sgi.com>
Signed-off-by: Alex Elder <aelder at sgi.com>
commit c56c9631cbe88f08854a56ff9776c1f310916830
Author: Christoph Hellwig <hch at infradead.org>
Date: Mon Oct 19 04:03:46 2009 +0000
xfs: fix mmap_sem/iolock inversion in xfs_free_eofblocks
When xfs_free_eofblocks is called from ->release the VM might already
hold the mmap_sem, but in the write path we take the iolock before
taking the mmap_sem in the generic write code.
Switch xfs_free_eofblocks to only trylock the iolock if called from
->release and skip trimming the prellocated blocks in that case.
We'll still free them later on the final iput.
Signed-off-by: Christoph Hellwig <hch at lst.de>
Reviewed-by: Alex Elder <aelder at sgi.com>
Signed-off-by: Alex Elder <aelder at sgi.com>
commit 848ce8f731aed0a2d4ab5884a4f6664af73d2dd0
Author: Christoph Hellwig <hch at infradead.org>
Date: Tue Sep 29 13:48:56 2009 +0000
xfs: simplify inode teardown
Currently the reclaim code for the case where we don't reclaim the
final reclaim is overly complicated. We know that the inode is clean
but instead of just directly reclaiming the clean inode we go through
the whole process of marking the inode reclaimable just to directly
reclaim it from the calling context. Besides being overly complicated
this introduces a race where iget could recycle an inode between
marked reclaimable and actually being reclaimed leading to panics.
This patch gets rid of the existing reclaim path, and replaces it with
a simple call to xfs_ireclaim if the inode was clean. While we're at
it we also use the slightly more lax xfs_inode_clean check we'd use
later to determine if we need to flush the inode here.
Finally get rid of xfs_reclaim function and place the remaining small
bits of reclaim code directly into xfs_fs_destroy_inode.
Signed-off-by: Christoph Hellwig <hch at lst.de>
Reported-by: Patrick Schreurs <patrick at news-service.com>
Reported-by: Tommy van Leeuwen <tommy at news-service.com>
Tested-by: Patrick Schreurs <patrick at news-service.com>
Reviewed-by: Alex Elder <aelder at sgi.com>
Signed-off-by: Alex Elder <aelder at sgi.com>
-----------------------------------------------------------------------
Summary of changes:
fs/xfs/linux-2.6/xfs_aops.c | 114 ++++++++++++++----------------------------
fs/xfs/linux-2.6/xfs_buf.c | 14 +++---
fs/xfs/linux-2.6/xfs_buf.h | 9 +---
fs/xfs/linux-2.6/xfs_file.c | 4 +-
fs/xfs/linux-2.6/xfs_iops.c | 6 +-
fs/xfs/linux-2.6/xfs_lrw.c | 5 --
fs/xfs/linux-2.6/xfs_super.c | 71 +++++++++++++++++---------
fs/xfs/linux-2.6/xfs_sync.c | 15 ++----
fs/xfs/linux-2.6/xfs_sync.h | 1 -
fs/xfs/linux-2.6/xfs_vnode.h | 1 -
fs/xfs/support/debug.h | 18 -------
fs/xfs/xfs_attr.c | 16 ++++--
fs/xfs/xfs_attr.h | 1 -
fs/xfs/xfs_attr_leaf.c | 2 +-
fs/xfs/xfs_bmap_btree.c | 3 +-
fs/xfs/xfs_filestream.h | 8 ++--
fs/xfs/xfs_fsops.c | 25 +++++----
fs/xfs/xfs_ialloc.c | 2 +-
fs/xfs/xfs_iget.c | 5 ++-
fs/xfs/xfs_iomap.c | 9 +++-
fs/xfs/xfs_log_recover.c | 40 ++++++---------
fs/xfs/xfs_mount.c | 18 +++---
fs/xfs/xfs_mount.h | 27 ++++++++--
fs/xfs/xfs_rw.c | 30 ++++++++++--
fs/xfs/xfs_rw.h | 29 +----------
fs/xfs/xfs_trans.c | 7 ++-
fs/xfs/xfs_trans.h | 2 +-
fs/xfs/xfs_trans_buf.c | 13 ++---
fs/xfs/xfs_vnodeops.c | 79 ++++++++++-------------------
fs/xfs/xfs_vnodeops.h | 1 -
30 files changed, 254 insertions(+), 321 deletions(-)
hooks/post-receive
--
XFS development tree
More information about the xfs
mailing list