From 64c84723064ed9ef9f2a7755d3afffd1ecf08af4 Mon Sep 17 00:00:00 2001 From: Anand Avati Date: Mon, 12 Aug 2013 09:41:06 -0700 Subject: mount/fuse: perform lookup() on inodes linked through readdirplus Some xlators still require lookup() fop to be sent for proper working. This patch remembers inodes which have been linked through readdiprlus and makes the resolver send lookups on them. Also, introduce and use context count for inode table. Change-Id: Ibe8a04a659539d90dfc794521b51bf2bda017a0b BUG: 979910 Signed-off-by: Anand Avati Reviewed-on: http://review.gluster.org/5267 Reviewed-by: Amar Tumballi Tested-by: Gluster Build System Reviewed-on: http://review.gluster.org/5806 --- xlators/performance/md-cache/src/md-cache.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'xlators/performance') diff --git a/xlators/performance/md-cache/src/md-cache.c b/xlators/performance/md-cache/src/md-cache.c index b7f1f1d13fe..9292dae76c2 100644 --- a/xlators/performance/md-cache/src/md-cache.c +++ b/xlators/performance/md-cache/src/md-cache.c @@ -799,6 +799,13 @@ mdc_lookup (call_frame_t *frame, xlator_t *this, loc_t *loc, if (!local) goto uncached; + if (!loc->name) + /* A nameless discovery is dangerous to cache. We + perform nameless lookup with the intention of + re-establishing an inode "properly" + */ + goto uncached; + loc_copy (&local->loc, loc); ret = mdc_inode_iatt_get (this, loc->inode, &stbuf); -- cgit