XFS does not need it's inodes to actuall be hashed in the VFS inode cache, but
we require the inode to be marked hashed for the writeback code to work.
Insted of using insert_inode_hash, which requires a second inode_lock roundtrip
after the partial merge of the inode scalability patches in 2.6.37-rc simply
use the new hlist_add_fake helper to mark it hashed without requiring a lock
or touching a global cache line.
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Index: linux-2.6/fs/xfs/linux-2.6/xfs_iops.c
===================================================================
--- linux-2.6.orig/fs/xfs/linux-2.6/xfs_iops.c 2010-11-05 19:17:18.511013308
+0100
+++ linux-2.6/fs/xfs/linux-2.6/xfs_iops.c 2010-11-05 19:23:31.772029658
+0100
@@ -762,7 +762,8 @@ xfs_setup_inode(
inode->i_state = I_NEW;
inode_sb_list_add(inode);
- insert_inode_hash(inode);
+ /* make the inode look hashed for the writeback code */
+ hlist_add_fake(&inode->i_hash);
inode->i_mode = ip->i_d.di_mode;
inode->i_nlink = ip->i_d.di_nlink;
|