From: Robert Read Date: Tue, 23 Feb 2010 00:00:43 +0000 (-0800) Subject: Revert "b=20989 Don't search for inode in nfs get_dentry" X-Git-Tag: 1.10.0.38~23 X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=commitdiff_plain;h=6f0f0e43e16bf63b7d2300b6829ae8209d23909b Revert "b=20989 Don't search for inode in nfs get_dentry" This reverts commit 06889c56aec37cead923dbbd636d31dba0a46950. This caused a performance regression on NFS. --- diff --git a/lustre/llite/llite_nfs.c b/lustre/llite/llite_nfs.c index 36b60a7..c597df9 100644 --- a/lustre/llite/llite_nfs.c +++ b/lustre/llite/llite_nfs.c @@ -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));