1
linux/fs/xfs/linux-2.6
Lachlan McIlroy e893bffd4c [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>
2007-10-16 14:22:28 +10:00
..
kmem.c
kmem.h [XFS] Fix sparse warning in kmem_shake_allow 2007-09-05 14:48:00 +10:00
mrlock.h [XFS] Add lockdep support for XFS 2007-05-08 13:50:19 +10:00
mutex.h
sema.h
spin.h
sv.h
time.h
xfs_aops.c [XFS] move v_trace from bhv_vnode to xfs_inode 2007-10-16 11:39:25 +10:00
xfs_aops.h [XFS] move v_iocount from bhv_vnode to xfs_inode 2007-10-16 11:38:56 +10:00
xfs_buf.c [XFS] Barriers need to be dynamically checked and switched off 2007-10-15 16:23:45 +10:00
xfs_buf.h [XFS] Only use refcounted pages for I/O 2007-07-14 15:21:14 +10:00
xfs_cred.h
xfs_dmapi_priv.h
xfs_export.c [XFS] kill the vfs_flags member in struct bhv_vfs 2007-10-16 11:45:57 +10:00
xfs_export.h
xfs_file.c [XFS] kill the vfs_flags member in struct bhv_vfs 2007-10-16 11:45:57 +10:00
xfs_fs_subr.c [XFS] kill the v_flag member in struct bhv_vnode 2007-10-16 11:37:29 +10:00
xfs_fs_subr.h [XFS] decontaminate vnode operations from behavior details 2007-10-15 16:54:29 +10:00
xfs_globals.c [XFS] Remove xfs_physmem 2007-10-15 16:40:14 +10:00
xfs_globals.h [XFS] Remove xfs_physmem 2007-10-15 16:40:14 +10:00
xfs_ioctl32.c [XFS] kill the v_flag member in struct bhv_vnode 2007-10-16 11:37:29 +10:00
xfs_ioctl32.h
xfs_ioctl.c [XFS] avoid xfs_getattr in XFS_IOC_FSGETXATTR ioctl 2007-10-16 12:21:48 +10:00
xfs_iops.c [XFS] simplify xfs_create/mknod/symlink prototype 2007-10-16 14:15:32 +10:00
xfs_iops.h [XFS] call common xfs vnode-level helpers directly and remove vnode operations 2007-10-16 10:40:00 +10:00
xfs_linux.h [XFS] call common xfs vfs-level helpers directly and remove vfs operations 2007-10-16 11:44:08 +10:00
xfs_lrw.c [XFS] ensure file size is logged on synchronous writes 2007-10-16 12:18:38 +10:00
xfs_lrw.h [XFS] call common xfs vfs-level helpers directly and remove vfs operations 2007-10-16 11:44:08 +10:00
xfs_stats.c
xfs_stats.h
xfs_super.c [XFS] avoid race in sync_inodes() that can fail to write out all dirty data 2007-10-16 14:22:28 +10:00
xfs_super.h [XFS] kill struct bhv_vfs 2007-10-16 12:17:27 +10:00
xfs_sysctl.c [XFS] Concurrent Multi-File Data Streams 2007-07-14 15:40:53 +10:00
xfs_sysctl.h [XFS] Concurrent Multi-File Data Streams 2007-07-14 15:40:53 +10:00
xfs_version.h
xfs_vfs.h [XFS] kill struct bhv_vfs 2007-10-16 12:17:27 +10:00
xfs_vnode.c [XFS] call common xfs vfs-level helpers directly and remove vfs operations 2007-10-16 11:44:08 +10:00
xfs_vnode.h [XFS] kill struct bhv_vfs 2007-10-16 12:17:27 +10:00