linux/fs/xfs
David Chinner a7430847fc [XFS] Fix broken inode cluster setup.
The radix tree based inode caches did away with the inode cluster hashes,
replacing them with a bunch of masking and gang lookups on the radix tree.

This masking got broken when moving the code to per-ag radix trees and
indexing by agino # rather than straight inode number. The result is
clustered inode writeback does not cluster and things can go extremely
slowly when there are lots of inodes to write.

Fix it up by comparing the agino # of the inode we just looked up to the
index of the cluster we are looking for.

Tested-by: Torsten Kaiser <just.for.lkml@googlemail.com>

SGI-PV: 972915
SGI-Modid: xfs-linux-melb:xfs-kern:30033a

Signed-off-by: David Chinner <dgc@sgi.com>
Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
2007-12-10 13:46:59 +11:00
..
linux-2.6 [XFS] Clear XBF_READ_AHEAD flag on I/O completion. 2007-12-10 13:46:45 +11:00
quota [XFS] Fix dbflush panic in xfs_qm_sync. 2007-12-10 13:40:10 +11:00
support [XFS] kill move.[ch] 2007-10-15 16:50:26 +10:00
Kbuild
Kconfig
Makefile
Makefile-linux-2.6 [XFS] kill struct bhv_vfs 2007-10-16 12:17:27 +10:00
xfs_acl.c [XFS] simplify xfs_create/mknod/symlink prototype 2007-10-16 14:15:32 +10:00
xfs_acl.h [XFS] simplify xfs_create/mknod/symlink prototype 2007-10-16 14:15:32 +10:00
xfs_ag.h [XFS] Radix tree based inode caching 2007-10-15 16:50:50 +10:00
xfs_alloc_btree.c
xfs_alloc_btree.h
xfs_alloc.c [XFS] Clean up function name handling in tracing code 2007-07-14 15:41:24 +10:00
xfs_alloc.h
xfs_arch.h
xfs_attr_leaf.c
xfs_attr_leaf.h
xfs_attr_sf.h
xfs_attr.c [XFS] call common xfs vnode-level helpers directly and remove vnode operations 2007-10-16 10:40:00 +10:00
xfs_attr.h [XFS] kill struct bhv_vnode 2007-10-16 11:40:24 +10:00
xfs_bit.c [XFS] Kill off xfs_count_bits 2007-07-14 15:36:43 +10:00
xfs_bit.h [XFS] Kill off xfs_count_bits 2007-07-14 15:36:43 +10:00
xfs_bmap_btree.c [XFS] Fix build regression from mod/commit which did cleanup of xfs_bmbt_*set_allf 2007-10-15 16:47:32 +10:00
xfs_bmap_btree.h [XFS] endianess annotations for xfs_bmbt_rec_t 2007-10-15 16:26:44 +10:00
xfs_bmap.c [XFS] call common xfs vnode-level helpers directly and remove vnode operations 2007-10-16 10:40:00 +10:00
xfs_bmap.h [XFS] decontaminate vnode operations from behavior details 2007-10-15 16:54:29 +10:00
xfs_btree.c
xfs_btree.h [XFS] Simplify XFS min/max macros. 2007-07-14 15:36:53 +10:00
xfs_buf_item.c [XFS] Radix tree based inode caching 2007-10-15 16:50:50 +10:00
xfs_buf_item.h Revert "[XFS] Avoid replaying inode buffer initialisation log items if on-disk version is newer." 2007-10-01 07:59:03 -07:00
xfs_clnt.h [XFS] Radix tree based inode caching 2007-10-15 16:50:50 +10:00
xfs_da_btree.c [XFS] fix sparse shadowed variable warnings 2007-09-05 14:50:26 +10:00
xfs_da_btree.h
xfs_dfrag.c [XFS] call common xfs vnode-level helpers directly and remove vnode operations 2007-10-16 10:40:00 +10:00
xfs_dfrag.h
xfs_dinode.h [XFS] dinode endianess annotations 2007-10-15 16:48:30 +10:00
xfs_dir2_block.c [XFS] Radix tree based inode caching 2007-10-15 16:50:50 +10:00
xfs_dir2_block.h [XFS] use filldir internally 2007-10-15 16:49:49 +10:00
xfs_dir2_data.c [XFS] Radix tree based inode caching 2007-10-15 16:50:50 +10:00
xfs_dir2_data.h [XFS] Reduce shouting by removing unnecessary macros from dir2 code. 2007-07-14 15:37:02 +10:00
xfs_dir2_leaf.c [XFS] use filldir internally 2007-10-15 16:49:49 +10:00
xfs_dir2_leaf.h [XFS] use filldir internally 2007-10-15 16:49:49 +10:00
xfs_dir2_node.c [XFS] Radix tree based inode caching 2007-10-15 16:50:50 +10:00
xfs_dir2_node.h [XFS] Reduce shouting by removing unnecessary macros from dir2 code. 2007-07-14 15:37:02 +10:00
xfs_dir2_sf.c [XFS] Radix tree based inode caching 2007-10-15 16:50:50 +10:00
xfs_dir2_sf.h [XFS] use filldir internally 2007-10-15 16:49:49 +10:00
xfs_dir2_trace.c
xfs_dir2_trace.h
xfs_dir2.c [XFS] move v_trace from bhv_vnode to xfs_inode 2007-10-16 11:39:25 +10:00
xfs_dir2.h [XFS] decontaminate vnode operations from behavior details 2007-10-15 16:54:29 +10:00
xfs_dmapi.h [XFS] kill the vfs_flags member in struct bhv_vfs 2007-10-16 11:45:57 +10:00
xfs_dmops.c [XFS] fixups after behavior removal merge into mainline git 2007-10-19 17:14:45 +10:00
xfs_error.c [XFS] kill the vfs_fsid and vfs_altfsid members in struct bhv_vfs 2007-10-16 11:45:02 +10:00
xfs_error.h [XFS] kill the vfs_fsid and vfs_altfsid members in struct bhv_vfs 2007-10-16 11:45:02 +10:00
xfs_extfree_item.c [XFS] Radix tree based inode caching 2007-10-15 16:50:50 +10:00
xfs_extfree_item.h
xfs_filestream.c [XFS] fix filestreams on 32-bit boxes 2007-09-20 19:40:19 +10:00
xfs_filestream.h [XFS] Concurrent Multi-File Data Streams 2007-07-14 15:40:53 +10:00
xfs_fs.h [XFS] cleanup fid types mess 2007-10-19 18:02:55 +10:00
xfs_fsops.c [XFS] growlock should be a mutex 2007-10-16 12:18:09 +10:00
xfs_fsops.h
xfs_ialloc_btree.c
xfs_ialloc_btree.h
xfs_ialloc.c [XFS] dinode endianess annotations 2007-10-15 16:48:30 +10:00
xfs_ialloc.h [XFS] Pick a single default inode cluster size. 2007-10-15 16:39:35 +10:00
xfs_iget.c [XFS] Fix broken inode cluster setup. 2007-12-10 13:46:59 +11:00
xfs_imap.h
xfs_inode_item.c
xfs_inode_item.h
xfs_inode.c [XFS] get_bulkall() could return incorrect inode state 2007-10-16 12:21:15 +10:00
xfs_inode.h [XFS] kill the vfs_flags member in struct bhv_vfs 2007-10-16 11:45:57 +10:00
xfs_inum.h
xfs_iocore.c [XFS] kill struct bhv_vfs 2007-10-16 12:17:27 +10:00
xfs_iomap.c [XFS] Kill unused IOMAP_EOF flag 2007-10-16 12:20:54 +10:00
xfs_iomap.h [XFS] Kill unused IOMAP_EOF flag 2007-10-16 12:20:54 +10:00
xfs_itable.c [XFS] 971064 Various fixups for xfs_bulkstat(). 2007-12-10 13:44:11 +11:00
xfs_itable.h [XFS] Fix XFS_IOC_FSBULKSTAT{,_SINGLE} & XFS_IOC_FSINUMBERS in compat mode 2007-07-14 15:42:50 +10:00
xfs_log_priv.h [XFS] replace some large xfs_log_priv.h macros by proper functions 2007-10-16 12:17:56 +10:00
xfs_log_recover.c [XFS] Turn off XBF_ASYNC flag before re-reading superblock. 2007-10-16 14:22:39 +10:00
xfs_log_recover.h
xfs_log.c [XFS] replace some large xfs_log_priv.h macros by proper functions 2007-10-16 12:17:56 +10:00
xfs_log.h
xfs_mount.c [XFS] growlock should be a mutex 2007-10-16 12:18:09 +10:00
xfs_mount.h [XFS] growlock should be a mutex 2007-10-16 12:18:09 +10:00
xfs_mru_cache.c [XFS] On-demand reaping of the MRU cache 2007-09-17 16:42:02 +10:00
xfs_mru_cache.h [XFS] On-demand reaping of the MRU cache 2007-09-17 16:42:02 +10:00
xfs_qmops.c [XFS] fixups after behavior removal merge into mainline git 2007-10-19 17:14:45 +10:00
xfs_quota.h [XFS] remove dependency of the quota module on behaviors 2007-10-16 11:43:26 +10:00
xfs_refcache.h
xfs_rename.c [XFS] move v_trace from bhv_vnode to xfs_inode 2007-10-16 11:39:25 +10:00
xfs_rtalloc.c
xfs_rtalloc.h
xfs_rw.c [XFS] decontaminate vfs operations from behavior details 2007-10-16 11:43:55 +10:00
xfs_rw.h [XFS] decontaminate vnode operations from behavior details 2007-10-15 16:54:29 +10:00
xfs_sb.h [XFS] superblock endianess annotations 2007-10-15 16:49:09 +10:00
xfs_trans_ail.c [XFS] Radix tree based inode caching 2007-10-15 16:50:50 +10:00
xfs_trans_buf.c Revert "[XFS] Avoid replaying inode buffer initialisation log items if on-disk version is newer." 2007-10-01 07:59:03 -07:00
xfs_trans_extfree.c [XFS] Radix tree based inode caching 2007-10-15 16:50:50 +10:00
xfs_trans_inode.c
xfs_trans_item.c
xfs_trans_priv.h
xfs_trans_space.h
xfs_trans.c [XFS] kill struct bhv_vfs 2007-10-16 12:17:27 +10:00
xfs_trans.h
xfs_types.h [XFS] use filldir internally 2007-10-15 16:49:49 +10:00
xfs_utils.c [XFS] move v_trace from bhv_vnode to xfs_inode 2007-10-16 11:39:25 +10:00
xfs_utils.h [XFS] move v_trace from bhv_vnode to xfs_inode 2007-10-16 11:39:25 +10:00
xfs_vfsops.c [XFS] cleanup fid types mess 2007-10-19 18:02:55 +10:00
xfs_vfsops.h [XFS] cleanup fid types mess 2007-10-19 18:02:55 +10:00
xfs_vnodeops.c [XFS] cleanup fid types mess 2007-10-19 18:02:55 +10:00
xfs_vnodeops.h [XFS] cleanup fid types mess 2007-10-19 18:02:55 +10:00
xfs.h [XFS] Concurrent Multi-File Data Streams 2007-07-14 15:40:53 +10:00