Commit:     a7430847fcb19297d6db833f35b9c9645c4a6395
Parent:     77be55a5a13d9c7ddf780a93861f2fba33f8be1a
Author:     David Chinner <[EMAIL PROTECTED]>
AuthorDate: Fri Nov 23 16:30:23 2007 +1100
Committer:  Lachlan McIlroy <[EMAIL PROTECTED]>
CommitDate: Mon Dec 10 13:46:59 2007 +1100

    [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 <[EMAIL PROTECTED]>
    SGI-PV: 972915
    SGI-Modid: xfs-linux-melb:xfs-kern:30033a
    Signed-off-by: David Chinner <[EMAIL PROTECTED]>
    Signed-off-by: Lachlan McIlroy <[EMAIL PROTECTED]>
 fs/xfs/xfs_iget.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/fs/xfs/xfs_iget.c b/fs/xfs/xfs_iget.c
index 488836e..fb69ef1 100644
--- a/fs/xfs/xfs_iget.c
+++ b/fs/xfs/xfs_iget.c
@@ -267,7 +267,7 @@ finish_inode:
        icl = NULL;
        if (radix_tree_gang_lookup(&pag->pag_ici_root, (void**)&iq,
                                                        first_index, 1)) {
-               if ((iq->i_ino & mask) == first_index)
+               if ((XFS_INO_TO_AGINO(mp, iq->i_ino) & mask) == first_index)
                        icl = iq->i_cluster;
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at

Reply via email to