From 6b4784d5382fb3177e423751eb8d056e8bf384b4 Mon Sep 17 00:00:00 2001 From: Amar Tumballi Date: Tue, 7 Sep 2010 10:13:29 +0000 Subject: fuse resolve to return if resolve not successful Signed-off-by: Amar Tumballi Signed-off-by: Vijay Bellur BUG: 1406 () URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1406 --- xlators/mount/fuse/src/fuse-resolve.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/xlators/mount/fuse/src/fuse-resolve.c b/xlators/mount/fuse/src/fuse-resolve.c index 3bdc0b9293e..dd248f3d9bc 100644 --- a/xlators/mount/fuse/src/fuse-resolve.c +++ b/xlators/mount/fuse/src/fuse-resolve.c @@ -145,6 +145,8 @@ fuse_resolve_newfd_cbk (call_frame_t *frame, void *cookie, xlator_t *this, STACK_DESTROY (frame->root); if (op_ret == -1) { + resolve->op_ret = -1; + resolve->op_errno = op_errno; goto out; } @@ -631,7 +633,7 @@ gf_resolve (fuse_state_t *state) } else { - resolve->op_ret = -1; + resolve->op_ret = 0; resolve->op_errno = EINVAL; gf_resolve_all (state); @@ -646,10 +648,17 @@ gf_resolve_done (fuse_state_t *state) { fuse_resume_fn_t fn = NULL; + if (state->resolve.op_ret || state->resolve2.op_ret) { + send_fuse_err (state->this, state->finh, + state->resolve.op_errno); + free_fuse_state (state); + goto out; + } fn = state->resume_fn; if (fn) fn (state); +out: return 0; } -- cgit