diff options
| -rw-r--r-- | xlators/protocol/server/src/server-resolve.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/xlators/protocol/server/src/server-resolve.c b/xlators/protocol/server/src/server-resolve.c index 6f621119278..a1fe2e85267 100644 --- a/xlators/protocol/server/src/server-resolve.c +++ b/xlators/protocol/server/src/server-resolve.c @@ -11,6 +11,7 @@ #include "server.h" #include "server-helpers.h" #include "server-messages.h" +#include "compat-errno.h" int @@ -59,7 +60,7 @@ resolve_gfid_entry_cbk (call_frame_t *frame, void *cookie, xlator_t *this, resolve_loc = &resolve->resolve_loc; if (!state->loc.inode && inode) { - state->loc.inode = inode; + state->loc.inode = inode_ref (inode); } if (op_ret == -1) { @@ -75,6 +76,9 @@ resolve_gfid_entry_cbk (call_frame_t *frame, void *cookie, xlator_t *this, uuid_utoa (resolve_loc->pargfid), resolve_loc->name, strerror (op_errno)); } + if (op_errno != ENODATA) { + goto out; + } } link_inode = inode_link (inode, resolve_loc->parent, |
