OpenCloudOS-Kernel/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 Slab API: remove useless ctor parameter and reorder parameters 2007-10-17 08:42:45 -07:00
mrlock.h [XFS] Add lockdep support for XFS 2007-05-08 13:50:19 +10:00
mutex.h [XFS] mutex fallout - fix debug builds and remove no-longer-useful comment. 2006-01-16 16:21:34 +11:00
sema.h [XFS] standardize on one sema init macro 2006-09-28 11:05:46 +10:00
sv.h [XFS] Collapse sv_init and init_sv into just the one interface. 2006-09-28 11:05:52 +10:00
time.h [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
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] move v_iocount from bhv_vnode to xfs_inode 2007-10-16 11:38:56 +10:00
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 [PATCH] move capable() to capability.h 2006-01-11 18:42:13 -08:00
xfs_dmapi_priv.h [XFS] Remove KERNEL_VERSION macros from xfs_dmapi.h 2006-11-11 18:05:06 +11:00
xfs_export.c [XFS] Cleanup various fid related bits: 2008-02-07 18:20:11 +11:00
xfs_export.h xfs: new export ops 2007-10-22 08:13:20 -07:00
xfs_file.c [XFS] Fix oops in xfs_file_readdir() 2008-02-07 18:24:13 +11: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] Fix up sparse warnings. 2008-02-07 18:14:38 +11:00
xfs_globals.h [XFS] Remove xfs_physmem 2007-10-15 16:40:14 +10:00
xfs_ioctl.c [XFS] remove shouting-indirection macros from xfs_sb.h 2008-04-10 16:24:45 +10:00
xfs_ioctl32.c [XFS] Fix up sparse warnings. 2008-02-07 18:14:38 +11:00
xfs_ioctl32.h [XFS] Fix compiler warning from xfs_file_compat_invis_ioctl prototype. 2006-03-20 13:25:48 +11: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] call common xfs vnode-level helpers directly and remove vnode operations 2007-10-16 10:40:00 +10:00
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 [PATCH] for_each_possible_cpu: xfs 2006-06-23 07:42:45 -07:00
xfs_stats.h [XFS] Complete the pagebuf -> xfs_buf naming convention transition, 2006-01-11 15:39:08 +11:00
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] 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] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_vfs.h [XFS] kill struct bhv_vfs 2007-10-16 12:17:27 +10:00
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