From 06889c56aec37cead923dbbd636d31dba0a46950 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Tue, 2 Feb 2010 00:20:23 -0500 Subject: [PATCH] b=20989 Don't search for inode in nfs get_dentry Getting inode separately without some sort of locking enabled a situation where several threads tried to populate same inode with different lsm data at the same time leading to lsm pointer change (and leak). i=johann i=bzzz --- lustre/llite/llite_nfs.c | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/lustre/llite/llite_nfs.c b/lustre/llite/llite_nfs.c index a2ce959..fb6c9c1 100644 --- a/lustre/llite/llite_nfs.c +++ b/lustre/llite/llite_nfs.c @@ -60,12 +60,6 @@ __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) { @@ -80,10 +74,6 @@ 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)); -- 1.8.3.1