summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--xlators/protocol/server/src/server-resolve.c30
-rw-r--r--xlators/protocol/server/src/server3_1-fops.c8
2 files changed, 8 insertions, 30 deletions
diff --git a/xlators/protocol/server/src/server-resolve.c b/xlators/protocol/server/src/server-resolve.c
index 1a489f6ef4c..e7c1cc85fd5 100644
--- a/xlators/protocol/server/src/server-resolve.c
+++ b/xlators/protocol/server/src/server-resolve.c
@@ -330,7 +330,7 @@ resolve_entry_simple (call_frame_t *frame)
this = frame->this;
resolve = state->resolve_now;
- parent = inode_get (state->itable, resolve->par, 0);
+ parent = inode_find (state->itable, resolve->pargfid);
if (!parent) {
/* simple resolution is indecisive. need to perform
deep resolution */
@@ -349,16 +349,6 @@ resolve_entry_simple (call_frame_t *frame)
goto out;
}
-// if (parent->ino != 1 && parent->generation != resolve->gen) {
- if (0) {
- /* simple resolution is decisive - request was for a
- stale handle */
- resolve->op_ret = -1;
- resolve->op_errno = ENOENT;
- ret = -1;
- goto out;
- }
-
/* expected @parent was found from the inode cache */
state->loc_now->parent = inode_ref (parent);
@@ -445,11 +435,7 @@ resolve_inode_simple (call_frame_t *frame)
state = CALL_STATE (frame);
resolve = state->resolve_now;
- if (resolve->type == RESOLVE_EXACT) {
- inode = inode_get (state->itable, resolve->ino, resolve->gen);
- } else {
- inode = inode_get (state->itable, resolve->ino, 0);
- }
+ inode = inode_find (state->itable, resolve->gfid);
if (!inode) {
resolve->op_ret = -1;
@@ -458,14 +444,6 @@ resolve_inode_simple (call_frame_t *frame)
goto out;
}
-// if (inode->ino != 1 && inode->generation != resolve->gen) {
- if (0) {
- resolve->op_ret = -1;
- resolve->op_errno = ENOENT;
- ret = -1;
- goto out;
- }
-
ret = 0;
state->loc_now->inode = inode_ref (inode);
@@ -545,11 +523,11 @@ server_resolve (call_frame_t *frame)
server_resolve_fd (frame);
- } else if (resolve->par) {
+ } else if (!uuid_is_null (resolve->pargfid)) {
server_resolve_entry (frame);
- } else if (resolve->ino) {
+ } else if (!uuid_is_null (resolve->gfid)) {
server_resolve_inode (frame);
diff --git a/xlators/protocol/server/src/server3_1-fops.c b/xlators/protocol/server/src/server3_1-fops.c
index ddcc423fd4e..c370dbe8afe 100644
--- a/xlators/protocol/server/src/server3_1-fops.c
+++ b/xlators/protocol/server/src/server3_1-fops.c
@@ -2886,7 +2886,7 @@ server_create (rpcsvc_request_t *req)
goto out;
}
- state->dict = params;
+ state->params = params;
params->extra_free = buf;
@@ -4090,7 +4090,7 @@ server_mknod (rpcsvc_request_t *req)
goto out;
}
- state->dict = params;
+ state->params = params;
params->extra_free = buf;
@@ -4179,7 +4179,7 @@ server_mkdir (rpcsvc_request_t *req)
goto out;
}
- state->dict = params;
+ state->params = params;
params->extra_free = buf;
@@ -4614,7 +4614,7 @@ server_symlink (rpcsvc_request_t *req)
goto out;
}
- state->dict = params;
+ state->params = params;
params->extra_free = buf;