summaryrefslogtreecommitdiffstats
path: root/fs/xfs
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2010-03-05 09:21:21 +0100
committerAl Viro <viro@zeniv.linux.org.uk>2010-03-05 19:25:10 +0100
commit26821ed40b4230259e770c9911180f38fcaa6f59 (patch)
tree40cd0fed705ec59dd3c909b96452bae1fc532796 /fs/xfs
parentMerge branch 'for-linus' of git://git.open-osd.org/linux-open-osd (diff)
downloadlinux-26821ed40b4230259e770c9911180f38fcaa6f59.tar.xz
linux-26821ed40b4230259e770c9911180f38fcaa6f59.zip
make sure data is on disk before calling ->write_inode
Similar to the fsync issue fixed a while ago in commit 2daea67e966dc0c42067ebea015ddac6834cef88 we need to write for data to actually hit the disk before writing out the metadata to guarantee data integrity for filesystems that modify the inode in the data I/O completion path. Currently XFS and NFS handle this manually, and AFS has a write_inode method that does nothing but waiting for data, while others are possibly missing out on this. Fortunately this change has a lot less impact than the fsync change as none of the write_inode methods starts data writeout of any form by itself. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/xfs')
-rw-r--r--fs/xfs/linux-2.6/xfs_super.c4
1 files changed, 0 insertions, 4 deletions
diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c
index 25ea2408118f..8f117db6070e 100644
--- a/fs/xfs/linux-2.6/xfs_super.c
+++ b/fs/xfs/linux-2.6/xfs_super.c
@@ -1075,10 +1075,6 @@ xfs_fs_write_inode(
return XFS_ERROR(EIO);
if (sync) {
- error = xfs_wait_on_pages(ip, 0, -1);
- if (error)
- goto out;
-
/*
* Make sure the inode has hit stable storage. By using the
* log and the fsync transactions we reduce the IOs we have