From 8e87a9da36a81f0e3a6d98120c078d27e17d657c Mon Sep 17 00:00:00 2001 From: Fan Yong Date: Thu, 11 Mar 2010 00:11:51 +0800 Subject: [PATCH] b=19933 control DCACHE_LUSTRE_INVALID flag with MDS_INODELOCK_LOOKUP lock "DCACHE_LUSTRE_INVALID" is controlled by "MDS_INODELOCK_LOOKUP" lock which is corresponding to "IT_LOOKUP", do not skip invalidate for other intent. i=robert.read i=johann --- lustre/llite/dcache.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lustre/llite/dcache.c b/lustre/llite/dcache.c index 3ab4444..22a929d 100644 --- a/lustre/llite/dcache.c +++ b/lustre/llite/dcache.c @@ -408,9 +408,6 @@ int ll_revalidate_it(struct dentry *de, int lookup_flags, GOTO(out_sa, rc); } - if ((de->d_flags & DCACHE_LUSTRE_INVALID) == 0) - GOTO(out_sa, rc = 1); - exp = ll_i2mdcexp(de->d_inode); /* Never execute intents for mount points. @@ -430,6 +427,9 @@ int ll_revalidate_it(struct dentry *de, int lookup_flags, ll_frob_intent(&it, &lookup_it); LASSERT(it); + if (it->it_op == IT_LOOKUP && !(de->d_flags & DCACHE_LUSTRE_INVALID)) + GOTO(out_sa, rc = 1); + ll_prepare_mdc_op_data(&op_data, parent, de->d_inode, de->d_name.name, de->d_name.len, 0, NULL); -- 1.8.3.1