Whamcloud - gitweb
Revert "b=20989 Don't search for inode in nfs get_dentry"
authorRobert Read <rread@sun.com>
Tue, 23 Feb 2010 00:00:43 +0000 (16:00 -0800)
committerRobert Read <rread@sun.com>
Tue, 23 Feb 2010 00:00:43 +0000 (16:00 -0800)
This reverts commit 06889c56aec37cead923dbbd636d31dba0a46950.

This caused a performance regression on NFS.

lustre/llite/llite_nfs.c

index 36b60a7..c597df9 100644 (file)
@@ -60,6 +60,12 @@ __u32 get_uuid2int(const char *name, int len)
         return (key0 << 1);
 }
 
+static int ll_nfs_test_inode(struct inode *inode, void *opaque)
+{
+        return lu_fid_eq(&ll_i2info(inode)->lli_fid,
+                         (struct lu_fid *)opaque);
+}
+
 static struct inode *search_inode_for_lustre(struct super_block *sb,
                                              const struct lu_fid *fid)
 {
@@ -74,6 +80,10 @@ static struct inode *search_inode_for_lustre(struct super_block *sb,
 
         CDEBUG(D_INFO, "searching inode for:(%lu,"DFID")\n", ino, PFID(fid));
 
+        inode = ILOOKUP(sb, ino, ll_nfs_test_inode, fid);
+        if (inode)
+                RETURN(inode);
+
         rc = ll_get_max_mdsize(sbi, &eadatalen);
         if (rc)
                 RETURN(ERR_PTR(rc));