From 84f474a00f68c4ac685fca970b1fe814a8c6e032 Mon Sep 17 00:00:00 2001 From: Raghavendra G Date: Fri, 4 Dec 2009 15:29:51 +0000 Subject: performance/stat-prefetch: don't check whether previous lookups have been failed in sp_process_inode_ctx. We need this patch for following reasons: 1. The inode used in the successful lookup call may not be the one passed to fops operating on path. This may happen, if revalidate of inode is failed, but the lookup itself succeeds (in case of reavalidate failures, fuse sends a fresh lookup using new inode) and since inode_link, if there is an inode already associated with a path retains it. 2. Only fops that "wait" in stat-prefetch on a lookup which is already in progress, need to check for the result of the lookup they are waiting on, before resuming and sp_process_inode_ctx is _not_ used in such contexts. Signed-off-by: Raghavendra G Signed-off-by: Anand V. Avati BUG: 428 (looks like stat cache not upto date..) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=428 --- xlators/performance/stat-prefetch/src/stat-prefetch.c | 9 --------- 1 file changed, 9 deletions(-) diff --git a/xlators/performance/stat-prefetch/src/stat-prefetch.c b/xlators/performance/stat-prefetch/src/stat-prefetch.c index e9235f59ba0..d5a206aee10 100644 --- a/xlators/performance/stat-prefetch/src/stat-prefetch.c +++ b/xlators/performance/stat-prefetch/src/stat-prefetch.c @@ -265,11 +265,6 @@ sp_process_inode_ctx (call_frame_t *frame, xlator_t *this, loc_t *loc, LOCK (&inode_ctx->lock); { - if (inode_ctx->op_ret == -1) { - op_errno = inode_ctx->op_errno; - goto unlock; - } - if (!(inode_ctx->looked_up || inode_ctx->lookup_in_progress)) { if (frame->local == NULL) { local = CALLOC (1, sizeof (*local)); @@ -1091,10 +1086,6 @@ wind: stub = NULL; } else { can_wind = 1; - } - - if (!(inode_ctx->looked_up - || inode_ctx->lookup_in_progress)) { inode_ctx->lookup_in_progress = 1; } } -- cgit