diff options
-rw-r--r-- | xlators/performance/readdir-ahead/src/readdir-ahead.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/xlators/performance/readdir-ahead/src/readdir-ahead.c b/xlators/performance/readdir-ahead/src/readdir-ahead.c index 9b0870e2b37..9f129aa08d8 100644 --- a/xlators/performance/readdir-ahead/src/readdir-ahead.c +++ b/xlators/performance/readdir-ahead/src/readdir-ahead.c @@ -236,6 +236,10 @@ rda_readdirp(call_frame_t *frame, xlator_t *this, fd_t *fd, size_t size, ret = __rda_serve_readdirp (this, ctx, size, &entries, &op_errno); serve = _gf_true; + + if (op_errno == ENOENT && !((ctx->state & RDA_FD_EOD) && + (ctx->cur_size == 0))) + op_errno = 0; } else { ctx->stub = fop_readdirp_stub (frame, NULL, fd, size, off, xdata); @@ -380,6 +384,10 @@ out: ctx->fill_frame = NULL; } + if (op_errno == ENOENT && !((ctx->state & RDA_FD_EOD) && + (ctx->cur_size == 0))) + op_errno = 0; + UNLOCK(&ctx->lock); if (serve) { |