diff options
author | Raghavendra G <raghavendra@gluster.com> | 2009-12-04 15:16:05 +0000 |
---|---|---|
committer | Anand V. Avati <avati@dev.gluster.com> | 2009-12-05 04:21:29 -0800 |
commit | 759d2ec189ce632022494baa478cc0d5256697e0 (patch) | |
tree | 9e5d1ebd23f2e7e09679489bcf4f7fefdcfaa0e3 /xlators/performance/stat-prefetch | |
parent | d281971e5061d4a339b31340798d6f1dbff348be (diff) |
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 for 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 <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 428 (looks like stat cache not upto date..)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=428
Diffstat (limited to 'xlators/performance/stat-prefetch')
-rw-r--r-- | xlators/performance/stat-prefetch/src/stat-prefetch.c | 9 |
1 files changed, 0 insertions, 9 deletions
diff --git a/xlators/performance/stat-prefetch/src/stat-prefetch.c b/xlators/performance/stat-prefetch/src/stat-prefetch.c index 89f4509b5..729924ff8 100644 --- a/xlators/performance/stat-prefetch/src/stat-prefetch.c +++ b/xlators/performance/stat-prefetch/src/stat-prefetch.c @@ -270,11 +270,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)); @@ -1079,10 +1074,6 @@ wind: stub = NULL; } else { can_wind = 1; - } - - if (!(inode_ctx->looked_up - || inode_ctx->lookup_in_progress)) { inode_ctx->lookup_in_progress = 1; } } |