1
linux/fs/xfs/linux-2.6
David Chinner a3f74ffb6d [XFS] Don't block pdflush when writing back inodes
When pdflush is writing back inodes, it can get stuck on inode cluster
buffers that are currently under I/O. This occurs when we write data to
multiple inodes in the same inode cluster at the same time.

Effectively, delayed allocation marks the inode dirty during the data
writeback. Hence if the inode cluster was flushed during the writeback of
the first inode, the writeback of the second inode will block waiting for
the inode cluster write to complete before writing it again for the newly
dirtied inode.

Basically, we want to avoid this from happening so we don't block pdflush
and slow down all of writeback. Hence we introduce a non-blocking async
inode flush flag that pdflush uses. If this flag is set, we use
non-blocking operations (e.g. try locks) whereever we can to avoid
blocking or extra I/O being issued.

SGI-PV: 970925
SGI-Modid: xfs-linux-melb:xfs-kern:30501a

Signed-off-by: David Chinner <dgc@sgi.com>
Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
2008-04-18 11:37:32 +10:00
..
kmem.c is_vmalloc_addr(): Check if an address is within the vmalloc boundaries 2008-02-05 09:44:14 -08:00
kmem.h
mrlock.h
mutex.h
sema.h
sv.h
time.h
xfs_aops.c [XFS] optimize XFS_IS_REALTIME_INODE w/o realtime config 2008-02-07 18:16:43 +11:00
xfs_aops.h
xfs_buf.c Merge branch 'for-linus' of git://oss.sgi.com:8090/xfs/xfs-2.6 2008-02-07 19:12:12 -08:00
xfs_buf.h [XFS] kill superflous buffer locking (2nd attempt) 2008-02-07 18:18:50 +11:00
xfs_cred.h
xfs_dmapi_priv.h
xfs_export.c [XFS] Cleanup various fid related bits: 2008-02-07 18:20:11 +11:00
xfs_export.h
xfs_file.c [XFS] Fix oops in xfs_file_readdir() 2008-02-07 18:24:13 +11:00
xfs_fs_subr.c
xfs_fs_subr.h
xfs_globals.c [XFS] Fix up sparse warnings. 2008-02-07 18:14:38 +11:00
xfs_globals.h
xfs_ioctl32.c [XFS] Fix up sparse warnings. 2008-02-07 18:14:38 +11:00
xfs_ioctl32.h
xfs_ioctl.c [XFS] remove shouting-indirection macros from xfs_sb.h 2008-04-10 16:24:45 +10:00
xfs_iops.c [XFS] keep i_nlink updated and use proper accessors 2008-02-07 18:23:38 +11:00
xfs_iops.h
xfs_linux.h [XFS] Remove the xfs_refcache 2008-04-18 11:36:55 +10:00
xfs_lrw.c Merge branch 'for-linus' of git://oss.sgi.com:8090/xfs/xfs-2.6 2008-02-07 19:12:12 -08:00
xfs_lrw.h [XFS] kill xfs_iocore_t 2008-02-07 16:48:58 +11:00
xfs_stats.c
xfs_stats.h
xfs_super.c [XFS] Don't block pdflush when writing back inodes 2008-04-18 11:37:32 +10:00
xfs_super.h exportfs: make struct export_operations const 2007-10-22 08:13:21 -07:00
xfs_sysctl.c
xfs_sysctl.h
xfs_version.h
xfs_vfs.h
xfs_vnode.c [XFS] add __init/__exit mark to specific init/cleanup functions 2008-02-07 18:25:19 +11:00
xfs_vnode.h [XFS] Don't block pdflush when writing back inodes 2008-04-18 11:37:32 +10:00