linux/fs/xfs/linux-2.6
David Chinner 455486b9cc [XFS] avoid all reclaimable inodes in xfs_sync_inodes_ag
If we are syncing data in xfs_sync_inodes_ag(), the VFS inode must still
be referencable as the dirty data state is carried on the VFS inode. hence
if we can't get a reference via igrab(), the inode must be in reclaim
which implies that it has no dirty data attached.

Leave such inodes to the reclaim code to flush the dirty inode state to
disk and so avoid attempting to access the VFS inode when it may not exist
in xfs_sync_inodes_ag().

Version 4:
o don't reference linux inode until after igrab() succeeds

Version 3:
o converted unlock/rele to an xfs_iput() call.

Version 2:
o change igrab logic to be more linear
o remove initial reclaimable inode check now that we are using
  igrab() failure to find reclaimable inodes
o assert that igrab failure occurs only on reclaimable inodes
o clean up inode locking - only grab the iolock if we are doing
  a SYNC_DELWRI call and we have a dirty inode.

SGI-PV: 987246

SGI-Modid: xfs-linux-melb:xfs-kern:32391a

Signed-off-by: David Chinner <david@fromorbit.com>
Signed-off-by: Christoph Hellwig <hch@infradead.org>
Signed-off-by: Peter Leckie <pleckie@sgi.com>
Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
2008-10-30 18:03:14 +11:00
..
kmem.c [XFS] kmem_free and kmem_realloc to use const void * 2008-07-28 16:58:43 +10:00
kmem.h [XFS] kmem_free and kmem_realloc to use const void * 2008-07-28 16:58:43 +10:00
mrlock.h [XFS] shrink mrlock_t 2008-04-29 15:54:02 +10:00
mutex.h
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_aops.c [XFS] Never call mark_inode_dirty_sync() directly 2008-10-30 17:21:30 +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 Fix barrier fail detection in XFS 2008-10-10 11:08:07 -07:00
xfs_buf.h Fix barrier fail detection in XFS 2008-10-10 11:08:07 -07:00
xfs_cred.h [XFS] Replace __inline with inline 2008-04-18 11:51:15 +10: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 [PATCH] switch all filesystems over to d_obtain_alias 2008-10-23 05:13:01 -04:00
xfs_export.h xfs: new export ops 2007-10-22 08:13:20 -07:00
xfs_file.c [PATCH] Remove XFS buffered readdir hack 2008-10-23 05:13:06 -04:00
xfs_fs_subr.c [XFS] Avoid directly referencing the VFS inode. 2008-08-13 15:45:15 +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 [PATCH] switch all filesystems over to d_obtain_alias 2008-10-23 05:13:01 -04:00
xfs_ioctl32.c [XFS] Fix up sparse warnings. 2008-02-07 18:14:38 +11:00
xfs_ioctl32.h
xfs_iops.c [XFS] Combine the XFS and Linux inodes 2008-10-30 17:36:14 +11:00
xfs_iops.h [XFS] stop using file_update_time 2008-08-13 16:48:12 +10:00
xfs_linux.h CRED: Introduce credential access wrappers 2008-08-14 09:35:23 +10:00
xfs_lrw.c [XFS] stop using file_update_time 2008-08-13 16:48:12 +10:00
xfs_lrw.h [XFS] remove sendfile leftovers 2008-04-29 16:08:14 +10:00
xfs_stats.c [XFS] add new btree statistics 2008-10-30 16:55:03 +11:00
xfs_stats.h [XFS] add new btree statistics 2008-10-30 16:55:03 +11:00
xfs_super.c [XFS] fix biosize option 2008-10-30 17:55:08 +11:00
xfs_super.h [XFS] move xfssyncd code to xfs_sync.c 2008-10-30 17:06:18 +11:00
xfs_sync.c [XFS] avoid all reclaimable inodes in xfs_sync_inodes_ag 2008-10-30 18:03:14 +11:00
xfs_sync.h [XFS] mark inodes for reclaim via a tag in the inode radix tree 2008-10-30 17:37:26 +11:00
xfs_sysctl.c [XFS] streamline init/exit path 2008-07-28 16:59:25 +10:00
xfs_sysctl.h [XFS] streamline init/exit path 2008-07-28 16:59:25 +10:00
xfs_version.h
xfs_vfs.h [XFS] move xfssyncd code to xfs_sync.c 2008-10-30 17:06:18 +11:00
xfs_vnode.c [XFS] Combine the XFS and Linux inodes 2008-10-30 17:36:14 +11:00
xfs_vnode.h [XFS] Use struct inodes instead of vnodes to kill vn_grab 2008-10-30 17:15:03 +11:00
xfs_xattr.c [XFS] Remove vn_revalidate calls in xfs. 2008-07-28 16:59:39 +10:00