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
d080070 xfs: stop calling filemap_fdatawait inside ->fsync
8e69ce1 fix readahead calculations in xfs_dir2_leaf_getdents()
dce5065 xfs: make sure xfs_sync_fsdata covers the log
932640e xfs: mark inodes dirty before issuing I/O
69961a2 xfs: cleanup ->sync_fs
c90b07e xfs: fix xfs_quiesce_data
f9581b1 xfs: implement ->dirty_inode to fix timestamp handling
from 9ef96da6ec5e1b4cf7eb8e30852cd88ec7d5fdc0 (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 d0800703febc04827b8fa91921aa4e254d01e8d1
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date: Sat Sep 26 19:55:04 2009 +0000
xfs: stop calling filemap_fdatawait inside ->fsync
Now that the VFS actually waits for the data I/O to complete before
calling into ->fsync we can stop doing it ourselves.
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Reviewed-by: Alex Elder <aelder@xxxxxxx>
Signed-off-by: Alex Elder <aelder@xxxxxxx>
commit 8e69ce147127a0235e8d1f2b75ea214be78c61b3
Author: Eric Sandeen <sandeen@xxxxxxxxxxx>
Date: Fri Sep 25 19:42:26 2009 +0000
fix readahead calculations in xfs_dir2_leaf_getdents()
This is for bug #850,
http://oss.sgi.com/bugzilla/show_bug.cgi?id=850
XFS file system segfaults , repeatedly and 100% reproducable in 2.6.30 ,
2.6.31
The above only showed up on a CONFIG_XFS_DEBUG=y kernel, because
xfs_bmapi() ASSERTs that it has been asked for at least one map,
and it was getting 0.
The root cause is that our guesstimated "bufsize" from xfs_file_readdir
was fairly small, and the
bufsize -= length;
in the loop was going negative - except bufsize is a size_t, so it
was wrapping to a very large number.
Then when we did
ra_want = howmany(bufsize + mp->m_dirblksize,
mp->m_sb.sb_blocksize) - 1;
with that very large number, the (int) ra_want was coming out
negative, and a subsequent compare:
if (1 + ra_want > map_blocks ...
was coming out -true- (negative int compare w/ uint) and we went
back to xfs_bmapi() for more, even though we did not need more,
and asked for 0 maps, and hit the ASSERT.
We have kind of a type mess here, but just keeping bufsize from
going negative is probably sufficient to avoid the problem.
Signed-off-by: Eric Sandeen <sandeen@xxxxxxxxxxx>
Reviewed-by: Christoph Hellwig <hch@xxxxxx>
Reviewed-by: Alex Elder <aelder@xxxxxxx>
Signed-off-by: Alex Elder <aelder@xxxxxxx>
commit dce5065a57c158e0ca5db8e63c50118b2ecf4ac5
Author: Dave Chinner <david@xxxxxxxxxxxxx>
Date: Tue Oct 6 20:29:30 2009 +0000
xfs: make sure xfs_sync_fsdata covers the log
We want to always cover the log after writing out the superblock, and
in case of a synchronous writeout make sure we actually wait for the
log to be covered. That way a filesystem that has been sync()ed can
be considered clean by log recovery.
Signed-off-by: Dave Chinner <david@xxxxxxxxxxxxx>
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Reviewed-by: Eric Sandeen <sandeen@xxxxxxxxxxx>
Reviewed-by: Alex Elder <aelder@xxxxxxx>
Signed-off-by: Alex Elder <aelder@xxxxxxx>
commit 932640e8adaff3d0c28ee32d4863c7a7a74df055
Author: Dave Chinner <david@xxxxxxxxxxxxx>
Date: Tue Oct 6 20:29:29 2009 +0000
xfs: mark inodes dirty before issuing I/O
To make sure they get properly waited on in sync when I/O is in flight and
we latter need to update the inode size. Requires a new helper to check if
an
ioend structure is beyond the current EOF.
Signed-off-by: Dave Chinner <david@xxxxxxxxxxxxx>
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Reviewed-by: Alex Elder <aelder@xxxxxxx>
Signed-off-by: Alex Elder <aelder@xxxxxxx>
commit 69961a26b82931601e07c9e3656bd90c598f2395
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date: Tue Oct 6 20:29:28 2009 +0000
xfs: cleanup ->sync_fs
Sort out ->sync_fs to not perform a superblock writeback for the wait = 0
case
as that is just an optional first pass and the superblock will be written
back
properly in the next call with wait = 1. Instead perform an opportunistic
quota writeback to have less work later. Also remove the freeze special
case
as we do a proper wait = 1 call in the freeze code anyway.
Also rename the function to xfs_fs_sync_fs to match the normal naming
convention, update comments and avoid calling into the laptop_mode logic on
an error.
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Reviewed-by: Alex Elder <aelder@xxxxxxx>
Signed-off-by: Alex Elder <aelder@xxxxxxx>
commit c90b07e8dd9f263d2e2af1d9648ba269f4d0d8fd
Author: Dave Chinner <david@xxxxxxxxxxxxx>
Date: Tue Oct 6 20:29:27 2009 +0000
xfs: fix xfs_quiesce_data
We need to do a synchronous xfs_sync_fsdata to make sure the superblock
actually is on disk when we return.
Also remove SYNC_BDFLUSH flag to xfs_sync_inodes because that particular
flag is never checked.
Move xfs_filestream_flush call later to only release inodes after they
have been written out.
Signed-off-by: Dave Chinner <david@xxxxxxxxxxxxx>
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Reviewed-by: Alex Elder <aelder@xxxxxxx>
Signed-off-by: Alex Elder <aelder@xxxxxxx>
commit f9581b1443abac50c90168301d40a7734b13a5dc
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date: Tue Oct 6 20:29:26 2009 +0000
xfs: implement ->dirty_inode to fix timestamp handling
This is picking up on Felix's repost of Dave's patch to implement a
.dirty_inode method. We really need this notification because
the VFS keeps writing directly into the inode structure instead
of going through methods to update this state. In addition to
the long-known atime issue we now also have a caller in VM code
that updates c/mtime that way for shared writeable mmaps. And
I found another one that no one has noticed in practice in the FIFO
code.
So implement ->dirty_inode to set i_update_core whenever the
inode gets externally dirtied, and switch the c/mtime handling to
the same scheme we already use for atime (always picking up
the value from the Linux inode).
Note that this patch also removes the xfs_synchronize_atime call
in xfs_reclaim it was superflous as we already synchronize the time
when writing the inode via the log (xfs_inode_item_format) or the
normal buffers (xfs_iflush_int).
In addition also remove the I_CLEAR check before copying the Linux
timestamps - now that we always have the Linux inode available
we can always use the timestamps in it.
Also switch to just using file_update_time for regular reads/writes -
that will get us all optimization done to it for free and make
sure we notice early when it breaks.
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Reviewed-by: Felix Blyakher <felixb@xxxxxxx>
Reviewed-by: Alex Elder <aelder@xxxxxxx>
Signed-off-by: Alex Elder <aelder@xxxxxxx>
-----------------------------------------------------------------------
Summary of changes:
fs/xfs/linux-2.6/xfs_aops.c | 38 ++++++++++++++++++++-------
fs/xfs/linux-2.6/xfs_file.c | 9 +-----
fs/xfs/linux-2.6/xfs_iops.c | 41 ++++++++++------------------
fs/xfs/linux-2.6/xfs_lrw.c | 2 +-
fs/xfs/linux-2.6/xfs_super.c | 59 +++++++++++++++++++++++++++++-------------
fs/xfs/linux-2.6/xfs_sync.c | 36 ++++++++++++++++++-------
fs/xfs/xfs_dfrag.c | 8 +++---
fs/xfs/xfs_dir2_leaf.c | 4 ++-
fs/xfs/xfs_inode.c | 4 +-
fs/xfs/xfs_inode.h | 2 +-
fs/xfs/xfs_inode_item.c | 18 ++++++++-----
fs/xfs/xfs_itable.c | 21 +++++++++-----
fs/xfs/xfs_vnodeops.c | 6 ----
13 files changed, 146 insertions(+), 102 deletions(-)
hooks/post-receive
--
XFS development tree
|