summaryrefslogtreecommitdiff
path: root/fs/xfs/xfs_log_recover.c
diff options
context:
space:
mode:
authorLachlan McIlroy <lachlan@sgi.com>2007-10-12 05:13:35 +0400
committerTim Shimmin <tes@chook.melbourne.sgi.com>2007-10-16 08:22:28 +0400
commite893bffd4cf2f000f3058319eea5abeeb1755969 (patch)
treef72f91742c4e145df11168db118deb5ac2deb2b5 /fs/xfs/xfs_log_recover.c
parentc2cba57e83dd7d2dda4ec425998b536669632c82 (diff)
downloadlinux-e893bffd4cf2f000f3058319eea5abeeb1755969.tar.xz
[XFS] avoid race in sync_inodes() that can fail to write out all dirty data
In xfs_fs_sync_super() treat a sync the same as a filesystem freeze. This is needed to force the log to disk for inodes which are not marked dirty in the Linux inode (the inodes are marked dirty on completion of the log I/O) and so sync_inodes() will not flush them. In xfs_fs_write_inode() a synchronous flush will not get an EAGAIN from xfs_inode_flush() and if an asynchronous flush returns EAGAIN we should pass it on to the caller. If we get an error while flushing the inode then re-dirty it so we can try again later. SGI-PV: 971670 SGI-Modid: xfs-linux-melb:xfs-kern:29860a Signed-off-by: Lachlan McIlroy <lachlan@sgi.com> Signed-off-by: David Chinner <dgc@sgi.com> Signed-off-by: Tim Shimmin <tes@sgi.com>
Diffstat (limited to 'fs/xfs/xfs_log_recover.c')
0 files changed, 0 insertions, 0 deletions