summaryrefslogtreecommitdiffstats
path: root/xlators/protocol/server/src/server-protocol.c
diff options
context:
space:
mode:
authorAmar Tumballi <amar@gluster.com>2009-07-01 00:49:54 +0000
committerAnand V. Avati <avati@dev.gluster.com>2009-07-01 18:32:21 -0700
commit4d176f44ce7b251794159371232954f810cfae02 (patch)
tree67770ba4f98c4c51d49cd0aaac00d86fc7fe8850 /xlators/protocol/server/src/server-protocol.c
parent8301e2ffc44beb09cec7e01aa8672e857c6c3977 (diff)
server protocol forget cleanup
as client now doesn't send forget at all to server, it should take care of forgetting the inode when there is a successful unlink and rmdir fops. also cleaned up unwanted forget fop's code. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
Diffstat (limited to 'xlators/protocol/server/src/server-protocol.c')
-rw-r--r--xlators/protocol/server/src/server-protocol.c75
1 files changed, 4 insertions, 71 deletions
diff --git a/xlators/protocol/server/src/server-protocol.c b/xlators/protocol/server/src/server-protocol.c
index accd8358f3f..5d70409bf8b 100644
--- a/xlators/protocol/server/src/server-protocol.c
+++ b/xlators/protocol/server/src/server-protocol.c
@@ -699,6 +699,7 @@ server_rmdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
if (op_ret == 0) {
inode_unlink (state->loc.inode, state->loc.parent,
state->loc.name);
+ inode_forget (state->loc.inode, 0);
} else {
gf_log (this->name, GF_LOG_TRACE,
"%"PRId64": RMDIR %s (%"PRId64") ==> %"PRId32" (%s)",
@@ -1472,6 +1473,8 @@ server_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
inode_unlink (state->loc.inode, state->loc.parent,
state->loc.name);
+
+ inode_forget (state->loc.inode, 0);
} else {
gf_log (this->name, GF_LOG_DEBUG,
"%"PRId64": UNLINK %s (%"PRId64") ==> %"PRId32" (%s)",
@@ -2215,39 +2218,6 @@ server_stat_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
return 0;
}
-/*
- * server_forget_cbk - forget callback for server protocol
- * @frame: call frame
- * @cookie:
- * @this:
- * @op_ret:
- * @op_errno:
- *
- * not for external reference
- */
-int
-server_forget_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
- int32_t op_ret, int32_t op_errno)
-{
- gf_hdr_common_t *hdr = NULL;
- gf_cbk_forget_rsp_t *rsp = NULL;
- size_t hdrlen = 0;
- int32_t gf_errno = 0;
-
- hdrlen = gf_hdr_len (rsp, 0);
- hdr = gf_hdr_new (rsp, 0);
- rsp = gf_param (hdr);
-
- hdr->rsp.op_ret = hton32 (op_ret);
- gf_errno = gf_errno_to_error (op_errno);
- hdr->rsp.op_errno = hton32 (gf_errno);
-
- protocol_server_reply (frame, GF_OP_TYPE_CBK_REPLY, GF_CBK_FORGET,
- hdr, hdrlen, NULL, 0, NULL);
-
- return 0;
-}
-
/*
* server_lookup_cbk - lookup callback for server protocol
@@ -3520,9 +3490,6 @@ fail:
/*
* server_forget - forget function for server protocol
- * @frame: call frame
- * @bound_xl:
- * @params: parameter dictionary
*
* not for external reference
*/
@@ -3531,41 +3498,7 @@ server_forget (call_frame_t *frame, xlator_t *bound_xl,
gf_hdr_common_t *hdr, size_t hdrlen,
struct iobuf *iobuf)
{
- int index = 0;
- ino_t ino = 0;
- int32_t count = 0;
- inode_t *inode = NULL;
- gf_cbk_forget_req_t *req = NULL;
-
- req = gf_param (hdr);
- count = ntoh32 (req->count);
-
- for (index = 0; index < count; index++) {
-
- ino = ntoh64 (req->ino_array[index]);
-
- if (!ino)
- continue;
-
- inode = inode_search (bound_xl->itable, ino, NULL);
-
- if (inode) {
- inode_forget (inode, 0);
- inode_unref (inode);
- } else {
- gf_log (bound_xl->name, GF_LOG_DEBUG,
- "%"PRId64": FORGET %"PRId64" not found "
- "in inode table",
- frame->root->unique, ino);
- }
-
- gf_log (bound_xl->name, GF_LOG_TRACE,
- "%"PRId64": FORGET \'%"PRId64"\'",
- frame->root->unique, ino);
- }
-
- server_forget_cbk (frame, NULL, bound_xl, 0, 0);
-
+ gf_log ("forget", GF_LOG_CRITICAL, "function not implemented");
return 0;
}