diff options
author | Gluster Ant <bugzilla-bot@gluster.org> | 2018-09-12 17:52:45 +0530 |
---|---|---|
committer | Nigel Babu <nigelb@redhat.com> | 2018-09-12 17:52:45 +0530 |
commit | e16868dede6455cab644805af6fe1ac312775e13 (patch) | |
tree | 15aebdb4fff2d87cf8a72f836816b3aa634da58d /xlators/protocol/client/src/client.c | |
parent | 45a71c0548b6fd2c757aa2e7b7671a1411948894 (diff) |
Land part 2 of clang-format changes
Change-Id: Ia84cc24c8924e6d22d02ac15f611c10e26db99b4
Signed-off-by: Nigel Babu <nigelb@redhat.com>
Diffstat (limited to 'xlators/protocol/client/src/client.c')
-rw-r--r-- | xlators/protocol/client/src/client.c | 4377 |
1 files changed, 2183 insertions, 2194 deletions
diff --git a/xlators/protocol/client/src/client.c b/xlators/protocol/client/src/client.c index cd30ed9637f..ffb0a6df656 100644 --- a/xlators/protocol/client/src/client.c +++ b/xlators/protocol/client/src/client.c @@ -8,7 +8,6 @@ cases as published by the Free Software Foundation. */ - #include "client.h" #include "xlator.h" #include "defaults.h" @@ -25,2970 +24,2960 @@ extern rpc_clnt_prog_t clnt_handshake_prog; extern rpc_clnt_prog_t clnt_dump_prog; extern struct rpcclnt_cb_program gluster_cbk_prog; -int client_handshake (xlator_t *this, struct rpc_clnt *rpc); -int client_init_rpc (xlator_t *this); -int client_destroy_rpc (xlator_t *this); -int client_mark_fd_bad (xlator_t *this); +int +client_handshake(xlator_t *this, struct rpc_clnt *rpc); +int +client_init_rpc(xlator_t *this); +int +client_destroy_rpc(xlator_t *this); +int +client_mark_fd_bad(xlator_t *this); static void -client_filter_o_direct (clnt_conf_t *conf, int32_t *flags) +client_filter_o_direct(clnt_conf_t *conf, int32_t *flags) { - if (conf->filter_o_direct) - *flags = (*flags & ~O_DIRECT); + if (conf->filter_o_direct) + *flags = (*flags & ~O_DIRECT); } static int -client_fini_complete (xlator_t *this) +client_fini_complete(xlator_t *this) { - GF_VALIDATE_OR_GOTO (this->name, this->private, out); + GF_VALIDATE_OR_GOTO(this->name, this->private, out); - clnt_conf_t *conf = this->private; + clnt_conf_t *conf = this->private; - if (!conf->destroy) - return 0; + if (!conf->destroy) + return 0; - this->private = NULL; + this->private = NULL; - pthread_spin_destroy (&conf->fd_lock); - pthread_mutex_destroy (&conf->lock); - GF_FREE (conf); + pthread_spin_destroy(&conf->fd_lock); + pthread_mutex_destroy(&conf->lock); + GF_FREE(conf); out: - return 0; + return 0; } int -client_notify_dispatch_uniq (xlator_t *this, int32_t event, void *data, ...) +client_notify_dispatch_uniq(xlator_t *this, int32_t event, void *data, ...) { - clnt_conf_t *conf = this->private; + clnt_conf_t *conf = this->private; - if (conf->last_sent_event == event) - return 0; + if (conf->last_sent_event == event) + return 0; - return client_notify_dispatch (this, event, data); + return client_notify_dispatch(this, event, data); } int -client_notify_dispatch (xlator_t *this, int32_t event, void *data, ...) -{ - int ret = -1; - glusterfs_ctx_t *ctx = this->ctx; - clnt_conf_t *conf = this->private; - - pthread_mutex_lock (&ctx->notify_lock); - { - while (ctx->notifying) - pthread_cond_wait (&ctx->notify_cond, - &ctx->notify_lock); - ctx->notifying = 1; - } - pthread_mutex_unlock (&ctx->notify_lock); - - /* We assume that all translators in the graph handle notification - * events in sequence. - * */ - ret = default_notify (this, event, data); - - /* NB (Even) with MT-epoll and EPOLLET|EPOLLONESHOT we are guaranteed - * that there would be atmost one poller thread executing this - * notification function. This allows us to update last_sent_event - * without explicit synchronization. See epoll(7). - */ - conf->last_sent_event = event; - - pthread_mutex_lock (&ctx->notify_lock); - { - ctx->notifying = 0; - pthread_cond_signal (&ctx->notify_cond); - } - pthread_mutex_unlock (&ctx->notify_lock); - - return ret; +client_notify_dispatch(xlator_t *this, int32_t event, void *data, ...) +{ + int ret = -1; + glusterfs_ctx_t *ctx = this->ctx; + clnt_conf_t *conf = this->private; + + pthread_mutex_lock(&ctx->notify_lock); + { + while (ctx->notifying) + pthread_cond_wait(&ctx->notify_cond, &ctx->notify_lock); + ctx->notifying = 1; + } + pthread_mutex_unlock(&ctx->notify_lock); + + /* We assume that all translators in the graph handle notification + * events in sequence. + * */ + ret = default_notify(this, event, data); + + /* NB (Even) with MT-epoll and EPOLLET|EPOLLONESHOT we are guaranteed + * that there would be atmost one poller thread executing this + * notification function. This allows us to update last_sent_event + * without explicit synchronization. See epoll(7). + */ + conf->last_sent_event = event; + + pthread_mutex_lock(&ctx->notify_lock); + { + ctx->notifying = 0; + pthread_cond_signal(&ctx->notify_cond); + } + pthread_mutex_unlock(&ctx->notify_lock); + + return ret; } int32_t -client_type_to_gf_type (short l_type) +client_type_to_gf_type(short l_type) { - int32_t gf_type = GF_LK_EOL; + int32_t gf_type = GF_LK_EOL; - switch (l_type) { + switch (l_type) { case F_RDLCK: - gf_type = GF_LK_F_RDLCK; - break; + gf_type = GF_LK_F_RDLCK; + break; case F_WRLCK: - gf_type = GF_LK_F_WRLCK; - break; + gf_type = GF_LK_F_WRLCK; + break; case F_UNLCK: - gf_type = GF_LK_F_UNLCK; - break; - } + gf_type = GF_LK_F_UNLCK; + break; + } - return gf_type; + return gf_type; } int -client_submit_request (xlator_t *this, void *req, call_frame_t *frame, - rpc_clnt_prog_t *prog, int procnum, fop_cbk_fn_t cbkfn, - struct iobref *iobref, struct iovec *payload, - int payloadcnt, struct iovec *rsp_payload, - int rsp_payload_count, struct iobref *rsp_iobref, - xdrproc_t xdrproc) -{ - int ret = -1; - clnt_conf_t *conf = NULL; - struct iovec iov = {0, }; - struct iobuf *iobuf = NULL; - int count = 0; - struct iobref *new_iobref = NULL; - ssize_t xdr_size = 0; - struct rpc_req rpcreq = {0, }; - - GF_VALIDATE_OR_GOTO ("client", this, out); - GF_VALIDATE_OR_GOTO (this->name, prog, out); - GF_VALIDATE_OR_GOTO (this->name, frame, out); - - conf = this->private; - - /* If 'setvolume' is not successful, we should not send frames to - server, mean time we should be able to send 'DUMP' and 'SETVOLUME' - call itself even if its not connected */ - if (!(conf->connected || - ((prog->prognum == GLUSTER_DUMP_PROGRAM) || - (prog->prognum == GLUSTER_PMAP_PROGRAM) || - ((prog->prognum == GLUSTER_HNDSK_PROGRAM) && - (procnum == GF_HNDSK_SETVOLUME))))) { - /* This particular error captured/logged in - functions calling this */ - gf_msg_debug (this->name, 0, - "connection in disconnected state"); - goto out; - } - - if (req && xdrproc) { - xdr_size = xdr_sizeof (xdrproc, req); - iobuf = iobuf_get2 (this->ctx->iobuf_pool, xdr_size); - if (!iobuf) { - goto out; - } - - new_iobref = iobref_new (); - if (!new_iobref) { - goto out; - } +client_submit_request(xlator_t *this, void *req, call_frame_t *frame, + rpc_clnt_prog_t *prog, int procnum, fop_cbk_fn_t cbkfn, + struct iobref *iobref, struct iovec *payload, + int payloadcnt, struct iovec *rsp_payload, + int rsp_payload_count, struct iobref *rsp_iobref, + xdrproc_t xdrproc) +{ + int ret = -1; + clnt_conf_t *conf = NULL; + struct iovec iov = { + 0, + }; + struct iobuf *iobuf = NULL; + int count = 0; + struct iobref *new_iobref = NULL; + ssize_t xdr_size = 0; + struct rpc_req rpcreq = { + 0, + }; + + GF_VALIDATE_OR_GOTO("client", this, out); + GF_VALIDATE_OR_GOTO(this->name, prog, out); + GF_VALIDATE_OR_GOTO(this->name, frame, out); + + conf = this->private; + + /* If 'setvolume' is not successful, we should not send frames to + server, mean time we should be able to send 'DUMP' and 'SETVOLUME' + call itself even if its not connected */ + if (!(conf->connected || ((prog->prognum == GLUSTER_DUMP_PROGRAM) || + (prog->prognum == GLUSTER_PMAP_PROGRAM) || + ((prog->prognum == GLUSTER_HNDSK_PROGRAM) && + (procnum == GF_HNDSK_SETVOLUME))))) { + /* This particular error captured/logged in + functions calling this */ + gf_msg_debug(this->name, 0, "connection in disconnected state"); + goto out; + } + + if (req && xdrproc) { + xdr_size = xdr_sizeof(xdrproc, req); + iobuf = iobuf_get2(this->ctx->iobuf_pool, xdr_size); + if (!iobuf) { + goto out; + } - if (iobref != NULL) { - ret = iobref_merge (new_iobref, iobref); - if (ret != 0) { - gf_msg (this->name, GF_LOG_WARNING, ENOMEM, - PC_MSG_NO_MEMORY, "cannot merge " - "iobref passed from caller into " - "new_iobref"); - } - } + new_iobref = iobref_new(); + if (!new_iobref) { + goto out; + } - ret = iobref_add (new_iobref, iobuf); - if (ret != 0) { - gf_msg (this->name, GF_LOG_WARNING, ENOMEM, - PC_MSG_NO_MEMORY, "cannot add iobuf into " - "iobref"); - goto out; - } + if (iobref != NULL) { + ret = iobref_merge(new_iobref, iobref); + if (ret != 0) { + gf_msg(this->name, GF_LOG_WARNING, ENOMEM, PC_MSG_NO_MEMORY, + "cannot merge " + "iobref passed from caller into " + "new_iobref"); + } + } - iov.iov_base = iobuf->ptr; - iov.iov_len = iobuf_size (iobuf); - - /* Create the xdr payload */ - ret = xdr_serialize_generic (iov, req, xdrproc); - if (ret == -1) { - /* callingfn so that, we can get to know which xdr - function was called */ - gf_log_callingfn (this->name, GF_LOG_WARNING, - "XDR payload creation failed"); - goto out; - } - iov.iov_len = ret; - count = 1; + ret = iobref_add(new_iobref, iobuf); + if (ret != 0) { + gf_msg(this->name, GF_LOG_WARNING, ENOMEM, PC_MSG_NO_MEMORY, + "cannot add iobuf into " + "iobref"); + goto out; } - /* do not send all groups if they are resolved server-side */ - if (!conf->send_gids) { - if (frame->root->ngrps <= SMALL_GROUP_COUNT) { - frame->root->groups_small[0] = frame->root->gid; - frame->root->groups = frame->root->groups_small; - } - frame->root->ngrps = 1; + iov.iov_base = iobuf->ptr; + iov.iov_len = iobuf_size(iobuf); + + /* Create the xdr payload */ + ret = xdr_serialize_generic(iov, req, xdrproc); + if (ret == -1) { + /* callingfn so that, we can get to know which xdr + function was called */ + gf_log_callingfn(this->name, GF_LOG_WARNING, + "XDR payload creation failed"); + goto out; } + iov.iov_len = ret; + count = 1; + } + + /* do not send all groups if they are resolved server-side */ + if (!conf->send_gids) { + if (frame->root->ngrps <= SMALL_GROUP_COUNT) { + frame->root->groups_small[0] = frame->root->gid; + frame->root->groups = frame->root->groups_small; + } + frame->root->ngrps = 1; + } - /* Send the msg */ - ret = rpc_clnt_submit (conf->rpc, prog, procnum, cbkfn, &iov, count, - payload, payloadcnt, new_iobref, frame, - payload, payloadcnt, rsp_payload, - rsp_payload_count, rsp_iobref); + /* Send the msg */ + ret = rpc_clnt_submit(conf->rpc, prog, procnum, cbkfn, &iov, count, payload, + payloadcnt, new_iobref, frame, payload, payloadcnt, + rsp_payload, rsp_payload_count, rsp_iobref); - if (ret < 0) { - gf_msg_debug (this->name, 0, "rpc_clnt_submit failed"); - } + if (ret < 0) { + gf_msg_debug(this->name, 0, "rpc_clnt_submit failed"); + } - ret = 0; + ret = 0; - if (new_iobref) - iobref_unref (new_iobref); + if (new_iobref) + iobref_unref(new_iobref); - if (iobuf) - iobuf_unref (iobuf); + if (iobuf) + iobuf_unref(iobuf); - return ret; + return ret; out: - rpcreq.rpc_status = -1; + rpcreq.rpc_status = -1; - cbkfn (&rpcreq, NULL, 0, frame); + cbkfn(&rpcreq, NULL, 0, frame); - if (new_iobref) - iobref_unref (new_iobref); + if (new_iobref) + iobref_unref(new_iobref); - if (iobuf) - iobuf_unref (iobuf); + if (iobuf) + iobuf_unref(iobuf); - return ret; + return ret; } - int -client_submit_compound_request (xlator_t *this, void *req, call_frame_t *frame, - rpc_clnt_prog_t *prog, int procnum, fop_cbk_fn_t cbkfn, - struct iovec *req_payload, int req_count, - struct iobref *iobref, struct iovec *rsphdr, - int rsphdr_count, struct iovec *rsp_payload, - int rsp_payload_count, struct iobref *rsp_iobref, - xdrproc_t xdrproc) -{ - int ret = -1; - clnt_conf_t *conf = NULL; - struct iovec iov = {0, }; - struct iobuf *iobuf = NULL; - int count = 0; - struct iobref *new_iobref = NULL; - ssize_t xdr_size = 0; - struct rpc_req rpcreq = {0, }; - - GF_VALIDATE_OR_GOTO ("client", this, out); - GF_VALIDATE_OR_GOTO (this->name, prog, out); - GF_VALIDATE_OR_GOTO (this->name, frame, out); - - conf = this->private; - - /* If 'setvolume' is not successful, we should not send frames to - * server - */ - - if (!conf->connected) { - gf_msg_debug (this->name, 0, - "connection in disconnected state"); - goto out; +client_submit_compound_request(xlator_t *this, void *req, call_frame_t *frame, + rpc_clnt_prog_t *prog, int procnum, + fop_cbk_fn_t cbkfn, struct iovec *req_payload, + int req_count, struct iobref *iobref, + struct iovec *rsphdr, int rsphdr_count, + struct iovec *rsp_payload, int rsp_payload_count, + struct iobref *rsp_iobref, xdrproc_t xdrproc) +{ + int ret = -1; + clnt_conf_t *conf = NULL; + struct iovec iov = { + 0, + }; + struct iobuf *iobuf = NULL; + int count = 0; + struct iobref *new_iobref = NULL; + ssize_t xdr_size = 0; + struct rpc_req rpcreq = { + 0, + }; + + GF_VALIDATE_OR_GOTO("client", this, out); + GF_VALIDATE_OR_GOTO(this->name, prog, out); + GF_VALIDATE_OR_GOTO(this->name, frame, out); + + conf = this->private; + + /* If 'setvolume' is not successful, we should not send frames to + * server + */ + + if (!conf->connected) { + gf_msg_debug(this->name, 0, "connection in disconnected state"); + goto out; + } + + if (req && xdrproc) { + xdr_size = xdr_sizeof(xdrproc, req); + iobuf = iobuf_get2(this->ctx->iobuf_pool, xdr_size); + if (!iobuf) { + goto out; + }; + + new_iobref = iobref_new(); + if (!new_iobref) { + goto out; } - if (req && xdrproc) { - xdr_size = xdr_sizeof (xdrproc, req); - iobuf = iobuf_get2 (this->ctx->iobuf_pool, xdr_size); - if (!iobuf) { - goto out; - }; - - new_iobref = iobref_new (); - if (!new_iobref) { - goto out; - } - - if (iobref != NULL) { - ret = iobref_merge (new_iobref, iobref); - if (ret != 0) { - goto out; - } - } - - ret = iobref_add (new_iobref, iobuf); - if (ret != 0) { - goto out; - } + if (iobref != NULL) { + ret = iobref_merge(new_iobref, iobref); + if (ret != 0) { + goto out; + } + } - iov.iov_base = iobuf->ptr; - iov.iov_len = iobuf_size (iobuf); - - /* Create the xdr payload */ - ret = xdr_serialize_generic (iov, req, xdrproc); - if (ret == -1) { - /* callingfn so that, we can get to know which xdr - function was called */ - gf_log_callingfn (this->name, GF_LOG_WARNING, - "XDR payload creation failed"); - goto out; - } - iov.iov_len = ret; - count = 1; + ret = iobref_add(new_iobref, iobuf); + if (ret != 0) { + goto out; } - /* do not send all groups if they are resolved server-side */ - if (!conf->send_gids) { - if (frame->root->ngrps <= SMALL_GROUP_COUNT) { - frame->root->groups_small[0] = frame->root->gid; - frame->root->groups = frame->root->groups_small; - } - frame->root->ngrps = 1; + iov.iov_base = iobuf->ptr; + iov.iov_len = iobuf_size(iobuf); + + /* Create the xdr payload */ + ret = xdr_serialize_generic(iov, req, xdrproc); + if (ret == -1) { + /* callingfn so that, we can get to know which xdr + function was called */ + gf_log_callingfn(this->name, GF_LOG_WARNING, + "XDR payload creation failed"); + goto out; + } + iov.iov_len = ret; + count = 1; + } + + /* do not send all groups if they are resolved server-side */ + if (!conf->send_gids) { + if (frame->root->ngrps <= SMALL_GROUP_COUNT) { + frame->root->groups_small[0] = frame->root->gid; + frame->root->groups = frame->root->groups_small; } + frame->root->ngrps = 1; + } - /* Send the msg */ - ret = rpc_clnt_submit (conf->rpc, prog, procnum, cbkfn, &iov, count, - req_payload, req_count, new_iobref, frame, - rsphdr, rsphdr_count, - rsp_payload, rsp_payload_count, rsp_iobref); + /* Send the msg */ + ret = rpc_clnt_submit(conf->rpc, prog, procnum, cbkfn, &iov, count, + req_payload, req_count, new_iobref, frame, rsphdr, + rsphdr_count, rsp_payload, rsp_payload_count, + rsp_iobref); - if (ret < 0) { - gf_msg_debug (this->name, 0, "rpc_clnt_submit failed"); - } + if (ret < 0) { + gf_msg_debug(this->name, 0, "rpc_clnt_submit failed"); + } - ret = 0; + ret = 0; - if (new_iobref) - iobref_unref (new_iobref); + if (new_iobref) + iobref_unref(new_iobref); - if (iobuf) - iobuf_unref (iobuf); + if (iobuf) + iobuf_unref(iobuf); - return ret; + return ret; out: - rpcreq.rpc_status = -1; + rpcreq.rpc_status = -1; - cbkfn (&rpcreq, NULL, 0, frame); + cbkfn(&rpcreq, NULL, 0, frame); - if (new_iobref) - iobref_unref (new_iobref); + if (new_iobref) + iobref_unref(new_iobref); - if (iobuf) - iobuf_unref (iobuf); + if (iobuf) + iobuf_unref(iobuf); - return 0; + return 0; } int32_t -client_forget (xlator_t *this, inode_t *inode) +client_forget(xlator_t *this, inode_t *inode) { - /* Nothing here */ - return 0; + /* Nothing here */ + return 0; } int32_t -client_releasedir (xlator_t *this, fd_t *fd) +client_releasedir(xlator_t *this, fd_t *fd) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; - conf = this->private; - if (!conf || !conf->fops) - goto out; + conf = this->private; + if (!conf || !conf->fops) + goto out; - args.fd = fd; + args.fd = fd; - proc = &conf->fops->proctable[GF_FOP_RELEASEDIR]; - if (proc->fn) { - ret = proc->fn (NULL, this, &args); - } + proc = &conf->fops->proctable[GF_FOP_RELEASEDIR]; + if (proc->fn) { + ret = proc->fn(NULL, this, &args); + } out: - if (ret) - gf_msg (this->name, GF_LOG_WARNING, 0, - PC_MSG_DIR_OP_FAILED, "releasedir fop failed"); - return 0; + if (ret) + gf_msg(this->name, GF_LOG_WARNING, 0, PC_MSG_DIR_OP_FAILED, + "releasedir fop failed"); + return 0; } int32_t -client_release (xlator_t *this, fd_t *fd) +client_release(xlator_t *this, fd_t *fd) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; - conf = this->private; - if (!conf || !conf->fops) - goto out; + conf = this->private; + if (!conf || !conf->fops) + goto out; - args.fd = fd; - proc = &conf->fops->proctable[GF_FOP_RELEASE]; - if (proc->fn) { - ret = proc->fn (NULL, this, &args); - } + args.fd = fd; + proc = &conf->fops->proctable[GF_FOP_RELEASE]; + if (proc->fn) { + ret = proc->fn(NULL, this, &args); + } out: - if (ret) - gf_msg (this->name, GF_LOG_WARNING, 0, PC_MSG_FILE_OP_FAILED, - "release fop failed"); - return 0; + if (ret) + gf_msg(this->name, GF_LOG_WARNING, 0, PC_MSG_FILE_OP_FAILED, + "release fop failed"); + return 0; } - int32_t -client_lookup (call_frame_t *frame, xlator_t *this, loc_t *loc, - dict_t *xdata) +client_lookup(call_frame_t *frame, xlator_t *this, loc_t *loc, dict_t *xdata) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; - conf = this->private; - if (!conf || !conf->fops) - goto out; + conf = this->private; + if (!conf || !conf->fops) + goto out; - args.loc = loc; - args.xdata = xdata; + args.loc = loc; + args.xdata = xdata; - proc = &conf->fops->proctable[GF_FOP_LOOKUP]; - if (proc->fn) - ret = proc->fn (frame, this, &args); + proc = &conf->fops->proctable[GF_FOP_LOOKUP]; + if (proc->fn) + ret = proc->fn(frame, this, &args); out: - /* think of avoiding a missing frame */ - if (ret) - STACK_UNWIND_STRICT (lookup, frame, -1, ENOTCONN, - NULL, NULL, NULL, NULL); + /* think of avoiding a missing frame */ + if (ret) + STACK_UNWIND_STRICT(lookup, frame, -1, ENOTCONN, NULL, NULL, NULL, + NULL); - return 0; + return 0; } - int32_t -client_stat (call_frame_t *frame, xlator_t *this, loc_t *loc, dict_t *xdata) +client_stat(call_frame_t *frame, xlator_t *this, loc_t *loc, dict_t *xdata) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; - conf = this->private; - if (!conf || !conf->fops) - goto out; + conf = this->private; + if (!conf || !conf->fops) + goto out; - args.loc = loc; - args.xdata = xdata; + args.loc = loc; + args.xdata = xdata; - proc = &conf->fops->proctable[GF_FOP_STAT]; - if (proc->fn) - ret = proc->fn (frame, this, &args); + proc = &conf->fops->proctable[GF_FOP_STAT]; + if (proc->fn) + ret = proc->fn(frame, this, &args); out: - if (ret) - STACK_UNWIND_STRICT (stat, frame, -1, ENOTCONN, NULL, NULL); + if (ret) + STACK_UNWIND_STRICT(stat, frame, -1, ENOTCONN, NULL, NULL); - return 0; + return 0; } - int32_t -client_truncate (call_frame_t *frame, xlator_t *this, loc_t *loc, - off_t offset, dict_t *xdata) +client_truncate(call_frame_t *frame, xlator_t *this, loc_t *loc, off_t offset, + dict_t *xdata) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; - conf = this->private; - if (!conf || !conf->fops) - goto out; + conf = this->private; + if (!conf || !conf->fops) + goto out; - args.loc = loc; - args.offset = offset; - args.xdata = xdata; + args.loc = loc; + args.offset = offset; + args.xdata = xdata; - proc = &conf->fops->proctable[GF_FOP_TRUNCATE]; - if (proc->fn) - ret = proc->fn (frame, this, &args); + proc = &conf->fops->proctable[GF_FOP_TRUNCATE]; + if (proc->fn) + ret = proc->fn(frame, this, &args); out: - if (ret) - STACK_UNWIND_STRICT (truncate, frame, -1, ENOTCONN, NULL, NULL, NULL); + if (ret) + STACK_UNWIND_STRICT(truncate, frame, -1, ENOTCONN, NULL, NULL, NULL); - - return 0; + return 0; } - int32_t -client_ftruncate (call_frame_t *frame, xlator_t *this, fd_t *fd, - off_t offset, dict_t *xdata) +client_ftruncate(call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset, + dict_t *xdata) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; - conf = this->private; - if (!conf || !conf->fops) - goto out; + conf = this->private; + if (!conf || !conf->fops) + goto out; - args.fd = fd; - args.offset = offset; - args.xdata = xdata; + args.fd = fd; + args.offset = offset; + args.xdata = xdata; - proc = &conf->fops->proctable[GF_FOP_FTRUNCATE]; - if (proc->fn) - ret = proc->fn (frame, this, &args); + proc = &conf->fops->proctable[GF_FOP_FTRUNCATE]; + if (proc->fn) + ret = proc->fn(frame, this, &args); out: - if (ret) - STACK_UNWIND_STRICT (ftruncate, frame, -1, ENOTCONN, NULL, NULL, NULL); + if (ret) + STACK_UNWIND_STRICT(ftruncate, frame, -1, ENOTCONN, NULL, NULL, NULL); - return 0; + return 0; } - - int32_t -client_access (call_frame_t *frame, xlator_t *this, loc_t *loc, - int32_t mask, dict_t *xdata) +client_access(call_frame_t *frame, xlator_t *this, loc_t *loc, int32_t mask, + dict_t *xdata) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; - conf = this->private; - if (!conf || !conf->fops) - goto out; + conf = this->private; + if (!conf || !conf->fops) + goto out; - args.loc = loc; - args.mask = mask; - args.xdata = xdata; + args.loc = loc; + args.mask = mask; + args.xdata = xdata; - proc = &conf->fops->proctable[GF_FOP_ACCESS]; - if (proc->fn) - ret = proc->fn (frame, this, &args); + proc = &conf->fops->proctable[GF_FOP_ACCESS]; + if (proc->fn) + ret = proc->fn(frame, this, &args); out: - if (ret) - STACK_UNWIND_STRICT (access, frame, -1, ENOTCONN, NULL); + if (ret) + STACK_UNWIND_STRICT(access, frame, -1, ENOTCONN, NULL); - return 0; + return 0; } - - - int32_t -client_readlink (call_frame_t *frame, xlator_t *this, loc_t *loc, - size_t size, dict_t *xdata) +client_readlink(call_frame_t *frame, xlator_t *this, loc_t *loc, size_t size, + dict_t *xdata) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; - conf = this->private; - if (!conf || !conf->fops) - goto out; + conf = this->private; + if (!conf || !conf->fops) + goto out; - args.loc = loc; - args.size = size; - args.xdata = xdata; + args.loc = loc; + args.size = size; + args.xdata = xdata; - proc = &conf->fops->proctable[GF_FOP_READLINK]; - if (proc->fn) - ret = proc->fn (frame, this, &args); + proc = &conf->fops->proctable[GF_FOP_READLINK]; + if (proc->fn) + ret = proc->fn(frame, this, &args); out: - if (ret) - STACK_UNWIND_STRICT (readlink, frame, -1, ENOTCONN, NULL, NULL, NULL); + if (ret) + STACK_UNWIND_STRICT(readlink, frame, -1, ENOTCONN, NULL, NULL, NULL); - return 0; + return 0; } - int -client_mknod (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode, - dev_t rdev, mode_t umask, dict_t *xdata) +client_mknod(call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode, + dev_t rdev, mode_t umask, dict_t *xdata) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; - conf = this->private; - if (!conf || !conf->fops) - goto out; + conf = this->private; + if (!conf || !conf->fops) + goto out; - args.loc = loc; - args.mode = mode; - args.rdev = rdev; - args.umask = umask; - args.xdata = xdata; + args.loc = loc; + args.mode = mode; + args.rdev = rdev; + args.umask = umask; + args.xdata = xdata; - proc = &conf->fops->proctable[GF_FOP_MKNOD]; - if (proc->fn) - ret = proc->fn (frame, this, &args); + proc = &conf->fops->proctable[GF_FOP_MKNOD]; + if (proc->fn) + ret = proc->fn(frame, this, &args); out: - if (ret) - STACK_UNWIND_STRICT (mknod, frame, -1, ENOTCONN, - NULL, NULL, NULL, NULL, NULL); + if (ret) + STACK_UNWIND_STRICT(mknod, frame, -1, ENOTCONN, NULL, NULL, NULL, NULL, + NULL); - return 0; + return 0; } - int -client_mkdir (call_frame_t *frame, xlator_t *this, loc_t *loc, - mode_t mode, mode_t umask, dict_t *xdata) +client_mkdir(call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode, + mode_t umask, dict_t *xdata) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; - conf = this->private; - if (!conf || !conf->fops) - goto out; + conf = this->private; + if (!conf || !conf->fops) + goto out; - args.loc = loc; - args.mode = mode; - args.umask = umask; - args.xdata = xdata; + args.loc = loc; + args.mode = mode; + args.umask = umask; + args.xdata = xdata; - proc = &conf->fops->proctable[GF_FOP_MKDIR]; - if (proc->fn) - ret = proc->fn (frame, this, &args); + proc = &conf->fops->proctable[GF_FOP_MKDIR]; + if (proc->fn) + ret = proc->fn(frame, this, &args); out: - if (ret) - STACK_UNWIND_STRICT (mkdir, frame, -1, ENOTCONN, - NULL, NULL, NULL, NULL, NULL); + if (ret) + STACK_UNWIND_STRICT(mkdir, frame, -1, ENOTCONN, NULL, NULL, NULL, NULL, + NULL); - return 0; + return 0; } - - int32_t -client_unlink (call_frame_t *frame, xlator_t *this, loc_t *loc, - int xflag, dict_t *xdata) +client_unlink(call_frame_t *frame, xlator_t *this, loc_t *loc, int xflag, + dict_t *xdata) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; - conf = this->private; - if (!conf || !conf->fops) - goto out; + conf = this->private; + if (!conf || !conf->fops) + goto out; - args.loc = loc; - args.xdata = xdata; - args.flags = xflag; + args.loc = loc; + args.xdata = xdata; + args.flags = xflag; - proc = &conf->fops->proctable[GF_FOP_UNLINK]; - if (proc->fn) - ret = proc->fn (frame, this, &args); + proc = &conf->fops->proctable[GF_FOP_UNLINK]; + if (proc->fn) + ret = proc->fn(frame, this, &args); out: - if (ret) - STACK_UNWIND_STRICT (unlink, frame, -1, ENOTCONN, - NULL, NULL, NULL); + if (ret) + STACK_UNWIND_STRICT(unlink, frame, -1, ENOTCONN, NULL, NULL, NULL); - return 0; + return 0; } int32_t -client_rmdir (call_frame_t *frame, xlator_t *this, loc_t *loc, int flags, - dict_t *xdata) +client_rmdir(call_frame_t *frame, xlator_t *this, loc_t *loc, int flags, + dict_t *xdata) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; - conf = this->private; - if (!conf || !conf->fops) - goto out; + conf = this->private; + if (!conf || !conf->fops) + goto out; - args.loc = loc; - args.flags = flags; - args.xdata = xdata; + args.loc = loc; + args.flags = flags; + args.xdata = xdata; - proc = &conf->fops->proctable[GF_FOP_RMDIR]; - if (proc->fn) - ret = proc->fn (frame, this, &args); + proc = &conf->fops->proctable[GF_FOP_RMDIR]; + if (proc->fn) + ret = proc->fn(frame, this, &args); out: - /* think of avoiding a missing frame */ - if (ret) - STACK_UNWIND_STRICT (rmdir, frame, -1, ENOTCONN, - NULL, NULL, NULL); + /* think of avoiding a missing frame */ + if (ret) + STACK_UNWIND_STRICT(rmdir, frame, -1, ENOTCONN, NULL, NULL, NULL); - return 0; + return 0; } - int -client_symlink (call_frame_t *frame, xlator_t *this, const char *linkpath, - loc_t *loc, mode_t umask, dict_t *xdata) +client_symlink(call_frame_t *frame, xlator_t *this, const char *linkpath, + loc_t *loc, mode_t umask, dict_t *xdata) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; - conf = this->private; - if (!conf || !conf->fops) - goto out; + conf = this->private; + if (!conf || !conf->fops) + goto out; - args.linkname = linkpath; - args.loc = loc; - args.umask = umask; - args.xdata = xdata; + args.linkname = linkpath; + args.loc = loc; + args.umask = umask; + args.xdata = xdata; - proc = &conf->fops->proctable[GF_FOP_SYMLINK]; - if (proc->fn) - ret = proc->fn (frame, this, &args); + proc = &conf->fops->proctable[GF_FOP_SYMLINK]; + if (proc->fn) + ret = proc->fn(frame, this, &args); out: - if (ret) - STACK_UNWIND_STRICT (symlink, frame, -1, ENOTCONN, - NULL, NULL, NULL, NULL, NULL); + if (ret) + STACK_UNWIND_STRICT(symlink, frame, -1, ENOTCONN, NULL, NULL, NULL, + NULL, NULL); - return 0; + return 0; } - - int32_t -client_rename (call_frame_t *frame, xlator_t *this, loc_t *oldloc, - loc_t *newloc, dict_t *xdata) +client_rename(call_frame_t *frame, xlator_t *this, loc_t *oldloc, loc_t *newloc, + dict_t *xdata) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; - conf = this->private; - if (!conf || !conf->fops) - goto out; + conf = this->private; + if (!conf || !conf->fops) + goto out; - args.oldloc = oldloc; - args.newloc = newloc; - args.xdata = xdata; + args.oldloc = oldloc; + args.newloc = newloc; + args.xdata = xdata; - proc = &conf->fops->proctable[GF_FOP_RENAME]; - if (proc->fn) - ret = proc->fn (frame, this, &args); + proc = &conf->fops->proctable[GF_FOP_RENAME]; + if (proc->fn) + ret = proc->fn(frame, this, &args); out: - if (ret) - STACK_UNWIND_STRICT (rename, frame, -1, ENOTCONN, - NULL, NULL, NULL, NULL, NULL, NULL); + if (ret) + STACK_UNWIND_STRICT(rename, frame, -1, ENOTCONN, NULL, NULL, NULL, NULL, + NULL, NULL); - return 0; + return 0; } - - int32_t -client_link (call_frame_t *frame, xlator_t *this, loc_t *oldloc, - loc_t *newloc, dict_t *xdata) +client_link(call_frame_t *frame, xlator_t *this, loc_t *oldloc, loc_t *newloc, + dict_t *xdata) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; - conf = this->private; - if (!conf || !conf->fops) - goto out; + conf = this->private; + if (!conf || !conf->fops) + goto out; - args.oldloc = oldloc; - args.newloc = newloc; - args.xdata = xdata; + args.oldloc = oldloc; + args.newloc = newloc; + args.xdata = xdata; - proc = &conf->fops->proctable[GF_FOP_LINK]; - if (proc->fn) - ret = proc->fn (frame, this, &args); + proc = &conf->fops->proctable[GF_FOP_LINK]; + if (proc->fn) + ret = proc->fn(frame, this, &args); out: - if (ret) - STACK_UNWIND_STRICT (link, frame, -1, ENOTCONN, - NULL, NULL, NULL, NULL, NULL); + if (ret) + STACK_UNWIND_STRICT(link, frame, -1, ENOTCONN, NULL, NULL, NULL, NULL, + NULL); - return 0; + return 0; } - - int32_t -client_create (call_frame_t *frame, xlator_t *this, loc_t *loc, int32_t flags, - mode_t mode, mode_t umask, fd_t *fd, dict_t *xdata) +client_create(call_frame_t *frame, xlator_t *this, loc_t *loc, int32_t flags, + mode_t mode, mode_t umask, fd_t *fd, dict_t *xdata) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; - conf = this->private; - if (!conf || !conf->fops) - goto out; + conf = this->private; + if (!conf || !conf->fops) + goto out; - args.loc = loc; - args.mode = mode; - args.fd = fd; - args.umask = umask; - args.xdata = xdata; - args.flags = flags; + args.loc = loc; + args.mode = mode; + args.fd = fd; + args.umask = umask; + args.xdata = xdata; + args.flags = flags; - client_filter_o_direct (conf, &args.flags); + client_filter_o_direct(conf, &args.flags); - proc = &conf->fops->proctable[GF_FOP_CREATE]; - if (proc->fn) - ret = proc->fn (frame, this, &args); + proc = &conf->fops->proctable[GF_FOP_CREATE]; + if (proc->fn) + ret = proc->fn(frame, this, &args); out: - if (ret) - STACK_UNWIND_STRICT (create, frame, -1, ENOTCONN, - NULL, NULL, NULL, NULL, NULL, NULL); + if (ret) + STACK_UNWIND_STRICT(create, frame, -1, ENOTCONN, NULL, NULL, NULL, NULL, + NULL, NULL); - return 0; + return 0; } - - int32_t -client_open (call_frame_t *frame, xlator_t *this, loc_t *loc, - int32_t flags, fd_t *fd, dict_t *xdata) +client_open(call_frame_t *frame, xlator_t *this, loc_t *loc, int32_t flags, + fd_t *fd, dict_t *xdata) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; - conf = this->private; - if (!conf || !conf->fops) - goto out; + conf = this->private; + if (!conf || !conf->fops) + goto out; - args.loc = loc; - args.fd = fd; - args.xdata = xdata; - args.flags = flags; + args.loc = loc; + args.fd = fd; + args.xdata = xdata; + args.flags = flags; - client_filter_o_direct (conf, &args.flags); + client_filter_o_direct(conf, &args.flags); - proc = &conf->fops->proctable[GF_FOP_OPEN]; - if (proc->fn) - ret = proc->fn (frame, this, &args); + proc = &conf->fops->proctable[GF_FOP_OPEN]; + if (proc->fn) + ret = proc->fn(frame, this, &args); out: - if (ret) - STACK_UNWIND_STRICT (open, frame, -1, ENOTCONN, NULL, NULL); + if (ret) + STACK_UNWIND_STRICT(open, frame, -1, ENOTCONN, NULL, NULL); - return 0; + return 0; } - - int32_t -client_readv (call_frame_t *frame, xlator_t *this, fd_t *fd, size_t size, - off_t offset, uint32_t flags, dict_t *xdata) +client_readv(call_frame_t *frame, xlator_t *this, fd_t *fd, size_t size, + off_t offset, uint32_t flags, dict_t *xdata) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; - conf = this->private; - if (!conf || !conf->fops) - goto out; + conf = this->private; + if (!conf || !conf->fops) + goto out; - args.fd = fd; - args.size = size; - args.offset = offset; - args.flags = flags; - args.xdata = xdata; + args.fd = fd; + args.size = size; + args.offset = offset; + args.flags = flags; + args.xdata = xdata; - client_filter_o_direct (conf, &args.flags); + client_filter_o_direct(conf, &args.flags); - proc = &conf->fops->proctable[GF_FOP_READ]; - if (proc->fn) - ret = proc->fn (frame, this, &args); + proc = &conf->fops->proctable[GF_FOP_READ]; + if (proc->fn) + ret = proc->fn(frame, this, &args); out: - if (ret) - STACK_UNWIND_STRICT (readv, frame, -1, ENOTCONN, - NULL, 0, NULL, NULL, NULL); + if (ret) + STACK_UNWIND_STRICT(readv, frame, -1, ENOTCONN, NULL, 0, NULL, NULL, + NULL); - return 0; + return 0; } - - - int32_t -client_writev (call_frame_t *frame, xlator_t *this, fd_t *fd, - struct iovec *vector, int32_t count, off_t off, - uint32_t flags, struct iobref *iobref, dict_t *xdata) +client_writev(call_frame_t *frame, xlator_t *this, fd_t *fd, + struct iovec *vector, int32_t count, off_t off, uint32_t flags, + struct iobref *iobref, dict_t *xdata) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; - conf = this->private; - if (!conf || !conf->fops) - goto out; + conf = this->private; + if (!conf || !conf->fops) + goto out; - args.fd = fd; - args.vector = vector; - args.count = count; - args.offset = off; - args.size = iov_length (vector, count); - args.flags = flags; - args.iobref = iobref; - args.xdata = xdata; + args.fd = fd; + args.vector = vector; + args.count = count; + args.offset = off; + args.size = iov_length(vector, count); + args.flags = flags; + args.iobref = iobref; + args.xdata = xdata; - client_filter_o_direct (conf, &args.flags); + client_filter_o_direct(conf, &args.flags); - proc = &conf->fops->proctable[GF_FOP_WRITE]; - if (proc->fn) - ret = proc->fn (frame, this, &args); + proc = &conf->fops->proctable[GF_FOP_WRITE]; + if (proc->fn) + ret = proc->fn(frame, this, &args); out: - if (ret) - STACK_UNWIND_STRICT (writev, frame, -1, ENOTCONN, NULL, NULL, NULL); + if (ret) + STACK_UNWIND_STRICT(writev, frame, -1, ENOTCONN, NULL, NULL, NULL); - return 0; + return 0; } - int32_t -client_flush (call_frame_t *frame, xlator_t *this, fd_t *fd, dict_t *xdata) +client_flush(call_frame_t *frame, xlator_t *this, fd_t *fd, dict_t *xdata) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; - conf = this->private; - if (!conf || !conf->fops) - goto out; + conf = this->private; + if (!conf || !conf->fops) + goto out; - args.fd = fd; - args.xdata = xdata; + args.fd = fd; + args.xdata = xdata; - proc = &conf->fops->proctable[GF_FOP_FLUSH]; - if (proc->fn) - ret = proc->fn (frame, this, &args); + proc = &conf->fops->proctable[GF_FOP_FLUSH]; + if (proc->fn) + ret = proc->fn(frame, this, &args); out: - if (ret) - STACK_UNWIND_STRICT (flush, frame, -1, ENOTCONN, NULL); + if (ret) + STACK_UNWIND_STRICT(flush, frame, -1, ENOTCONN, NULL); - return 0; + return 0; } - - int32_t -client_fsync (call_frame_t *frame, xlator_t *this, fd_t *fd, - int32_t flags, dict_t *xdata) +client_fsync(call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t flags, + dict_t *xdata) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; - conf = this->private; - if (!conf || !conf->fops) - goto out; + conf = this->private; + if (!conf || !conf->fops) + goto out; - args.fd = fd; - args.flags = flags; - args.xdata = xdata; + args.fd = fd; + args.flags = flags; + args.xdata = xdata; - proc = &conf->fops->proctable[GF_FOP_FSYNC]; - if (proc->fn) - ret = proc->fn (frame, this, &args); + proc = &conf->fops->proctable[GF_FOP_FSYNC]; + if (proc->fn) + ret = proc->fn(frame, this, &args); out: - if (ret) - STACK_UNWIND_STRICT (fsync, frame, -1, ENOTCONN, NULL, NULL, NULL); + if (ret) + STACK_UNWIND_STRICT(fsync, frame, -1, ENOTCONN, NULL, NULL, NULL); - return 0; + return 0; } - - int32_t -client_fstat (call_frame_t *frame, xlator_t *this, fd_t *fd, dict_t *xdata) +client_fstat(call_frame_t *frame, xlator_t *this, fd_t *fd, dict_t *xdata) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; - conf = this->private; - if (!conf || !conf->fops) - goto out; + conf = this->private; + if (!conf || !conf->fops) + goto out; - args.fd = fd; - args.xdata = xdata; + args.fd = fd; + args.xdata = xdata; - proc = &conf->fops->proctable[GF_FOP_FSTAT]; - if (proc->fn) - ret = proc->fn (frame, this, &args); + proc = &conf->fops->proctable[GF_FOP_FSTAT]; + if (proc->fn) + ret = proc->fn(frame, this, &args); out: - if (ret) - STACK_UNWIND_STRICT (fstat, frame, -1, ENOTCONN, NULL, NULL); + if (ret) + STACK_UNWIND_STRICT(fstat, frame, -1, ENOTCONN, NULL, NULL); - return 0; + return 0; } - - int32_t -client_opendir (call_frame_t *frame, xlator_t *this, loc_t *loc, fd_t *fd, - dict_t *xdata) +client_opendir(call_frame_t *frame, xlator_t *this, loc_t *loc, fd_t *fd, + dict_t *xdata) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; - conf = this->private; - if (!conf || !conf->fops) - goto out; + conf = this->private; + if (!conf || !conf->fops) + goto out; - args.loc = loc; - args.fd = fd; - args.xdata = xdata; + args.loc = loc; + args.fd = fd; + args.xdata = xdata; - proc = &conf->fops->proctable[GF_FOP_OPENDIR]; - if (proc->fn) - ret = proc->fn (frame, this, &args); + proc = &conf->fops->proctable[GF_FOP_OPENDIR]; + if (proc->fn) + ret = proc->fn(frame, this, &args); out: - if (ret) - STACK_UNWIND_STRICT (opendir, frame, -1, ENOTCONN, NULL, NULL); + if (ret) + STACK_UNWIND_STRICT(opendir, frame, -1, ENOTCONN, NULL, NULL); - return 0; + return 0; } - - int32_t -client_fsyncdir (call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t flags, dict_t *xdata) +client_fsyncdir(call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t flags, + dict_t *xdata) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; - conf = this->private; - if (!conf || !conf->fops) - goto out; + conf = this->private; + if (!conf || !conf->fops) + goto out; - args.fd = fd; - args.flags = flags; - args.xdata = xdata; + args.fd = fd; + args.flags = flags; + args.xdata = xdata; - proc = &conf->fops->proctable[GF_FOP_FSYNCDIR]; - if (proc->fn) - ret = proc->fn (frame, this, &args); + proc = &conf->fops->proctable[GF_FOP_FSYNCDIR]; + if (proc->fn) + ret = proc->fn(frame, this, &args); out: - if (ret) - STACK_UNWIND_STRICT (fsyncdir, frame, -1, ENOTCONN, NULL); + if (ret) + STACK_UNWIND_STRICT(fsyncdir, frame, -1, ENOTCONN, NULL); - return 0; + return 0; } - - int32_t -client_statfs (call_frame_t *frame, xlator_t *this, loc_t *loc, dict_t *xdata) +client_statfs(call_frame_t *frame, xlator_t *this, loc_t *loc, dict_t *xdata) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; - conf = this->private; - if (!conf || !conf->fops) - goto out; + conf = this->private; + if (!conf || !conf->fops) + goto out; - args.loc = loc; - args.xdata = xdata; + args.loc = loc; + args.xdata = xdata; - proc = &conf->fops->proctable[GF_FOP_STATFS]; - if (proc->fn) - ret = proc->fn (frame, this, &args); + proc = &conf->fops->proctable[GF_FOP_STATFS]; + if (proc->fn) + ret = proc->fn(frame, this, &args); out: - if (ret) - STACK_UNWIND_STRICT (statfs, frame, -1, ENOTCONN, NULL, NULL); + if (ret) + STACK_UNWIND_STRICT(statfs, frame, -1, ENOTCONN, NULL, NULL); - return 0; + return 0; } static gf_boolean_t -is_client_rpc_init_command (dict_t *dict, xlator_t *this, - char **value) +is_client_rpc_init_command(dict_t *dict, xlator_t *this, char **value) { - gf_boolean_t ret = _gf_false; - int dict_ret = -1; + gf_boolean_t ret = _gf_false; + int dict_ret = -1; - dict_ret = dict_get_str (dict, CLIENT_CMD_CONNECT, value); - if (dict_ret) { - gf_msg_trace (this->name, 0, "key %s not present", - CLIENT_CMD_CONNECT); - goto out; - } + dict_ret = dict_get_str(dict, CLIENT_CMD_CONNECT, value); + if (dict_ret) { + gf_msg_trace(this->name, 0, "key %s not present", CLIENT_CMD_CONNECT); + goto out; + } - ret = _gf_true; + ret = _gf_true; out: - return ret; - + return ret; } static gf_boolean_t -is_client_rpc_destroy_command (dict_t *dict, xlator_t *this) +is_client_rpc_destroy_command(dict_t *dict, xlator_t *this) { - gf_boolean_t ret = _gf_false; - int dict_ret = -1; - char *dummy = NULL; + gf_boolean_t ret = _gf_false; + int dict_ret = -1; + char *dummy = NULL; - if (strncmp (this->name, "replace-brick", 13)) { - gf_msg_trace (this->name, 0, "name is !replace-brick"); - goto out; - } + if (strncmp(this->name, "replace-brick", 13)) { + gf_msg_trace(this->name, 0, "name is !replace-brick"); + goto out; + } - dict_ret = dict_get_str (dict, CLIENT_CMD_DISCONNECT, &dummy); - if (dict_ret) { - gf_msg_trace (this->name, 0, "key %s not present", - CLIENT_CMD_DISCONNECT); - goto out; - } + dict_ret = dict_get_str(dict, CLIENT_CMD_DISCONNECT, &dummy); + if (dict_ret) { + gf_msg_trace(this->name, 0, "key %s not present", + CLIENT_CMD_DISCONNECT); + goto out; + } - ret = _gf_true; + ret = _gf_true; out: - return ret; - + return ret; } static int -client_set_remote_options (char *value, xlator_t *this) -{ - char *dup_value = NULL; - char *host = NULL; - char *subvol = NULL; - char *host_dup = NULL; - char *subvol_dup = NULL; - char *remote_port_str = NULL; - char *tmp = NULL; - int remote_port = 0; - int ret = 0; - - dup_value = gf_strdup (value); - host = strtok_r (dup_value, ":", &tmp); - subvol = strtok_r (NULL, ":", &tmp); - remote_port_str = strtok_r (NULL, ":", &tmp); - - if (host) { - host_dup = gf_strdup (host); - if (!host_dup) { - goto out; - } - ret = dict_set_dynstr (this->options, "remote-host", host_dup); - if (ret) { - gf_msg (this->name, GF_LOG_WARNING, 0, PC_MSG_DICT_SET_FAILED, - "failed to set remote-host with %s", host); - goto out; - } +client_set_remote_options(char *value, xlator_t *this) +{ + char *dup_value = NULL; + char *host = NULL; + char *subvol = NULL; + char *host_dup = NULL; + char *subvol_dup = NULL; + char *remote_port_str = NULL; + char *tmp = NULL; + int remote_port = 0; + int ret = 0; + + dup_value = gf_strdup(value); + host = strtok_r(dup_value, ":", &tmp); + subvol = strtok_r(NULL, ":", &tmp); + remote_port_str = strtok_r(NULL, ":", &tmp); + + if (host) { + host_dup = gf_strdup(host); + if (!host_dup) { + goto out; } + ret = dict_set_dynstr(this->options, "remote-host", host_dup); + if (ret) { + gf_msg(this->name, GF_LOG_WARNING, 0, PC_MSG_DICT_SET_FAILED, + "failed to set remote-host with %s", host); + goto out; + } + } - if (subvol) { - subvol_dup = gf_strdup (subvol); - if (!subvol_dup) { - goto out; - } + if (subvol) { + subvol_dup = gf_strdup(subvol); + if (!subvol_dup) { + goto out; + } - ret = dict_set_dynstr (this->options, "remote-subvolume", subvol_dup); - if (ret) { - gf_msg (this->name, GF_LOG_WARNING, 0, PC_MSG_DICT_SET_FAILED, - "failed to set remote-host with %s", host); - goto out; - } + ret = dict_set_dynstr(this->options, "remote-subvolume", subvol_dup); + if (ret) { + gf_msg(this->name, GF_LOG_WARNING, 0, PC_MSG_DICT_SET_FAILED, + "failed to set remote-host with %s", host); + goto out; } + } - if (remote_port_str) { - remote_port = atoi (remote_port_str); + if (remote_port_str) { + remote_port = atoi(remote_port_str); - ret = dict_set_int32 (this->options, "remote-port", - remote_port); - if (ret) { - gf_msg (this->name, GF_LOG_ERROR, 0, PC_MSG_DICT_SET_FAILED, - "failed to set remote-port to %d", remote_port); - goto out; - } + ret = dict_set_int32(this->options, "remote-port", remote_port); + if (ret) { + gf_msg(this->name, GF_LOG_ERROR, 0, PC_MSG_DICT_SET_FAILED, + "failed to set remote-port to %d", remote_port); + goto out; } + } - ret = 0; + ret = 0; out: - GF_FREE (dup_value); + GF_FREE(dup_value); - return ret; + return ret; } - int32_t -client_setxattr (call_frame_t *frame, xlator_t *this, loc_t *loc, dict_t *dict, - int32_t flags, dict_t *xdata) -{ - int ret = -1; - int op_ret = -1; - int op_errno = ENOTCONN; - int need_unwind = 0; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; - char *value = NULL; - - - if (is_client_rpc_init_command (dict, this, &value) == _gf_true) { - GF_ASSERT (value); - gf_msg (this->name, GF_LOG_INFO, 0, PC_MSG_RPC_INIT, - "client rpc init command"); - ret = client_set_remote_options (value, this); - if (!ret) { - op_ret = 0; - op_errno = 0; - } - need_unwind = 1; - goto out; +client_setxattr(call_frame_t *frame, xlator_t *this, loc_t *loc, dict_t *dict, + int32_t flags, dict_t *xdata) +{ + int ret = -1; + int op_ret = -1; + int op_errno = ENOTCONN; + int need_unwind = 0; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; + char *value = NULL; + + if (is_client_rpc_init_command(dict, this, &value) == _gf_true) { + GF_ASSERT(value); + gf_msg(this->name, GF_LOG_INFO, 0, PC_MSG_RPC_INIT, + "client rpc init command"); + ret = client_set_remote_options(value, this); + if (!ret) { + op_ret = 0; + op_errno = 0; } - - if (is_client_rpc_destroy_command (dict, this) == _gf_true) { - gf_msg (this->name, GF_LOG_INFO, 0, PC_MSG_RPC_DESTROY, - "client rpc destroy command"); - ret = client_destroy_rpc (this); - if (ret) { - op_ret = 0; - op_errno = 0; - } - need_unwind = 1; - goto out; - } - - conf = this->private; - if (!conf || !conf->fops) { - op_errno = ENOTCONN; - need_unwind = 1; - goto out; + need_unwind = 1; + goto out; + } + + if (is_client_rpc_destroy_command(dict, this) == _gf_true) { + gf_msg(this->name, GF_LOG_INFO, 0, PC_MSG_RPC_DESTROY, + "client rpc destroy command"); + ret = client_destroy_rpc(this); + if (ret) { + op_ret = 0; + op_errno = 0; } - - args.loc = loc; - args.xattr = dict; - args.flags = flags; - args.xdata = xdata; - - proc = &conf->fops->proctable[GF_FOP_SETXATTR]; - if (proc->fn) { - ret = proc->fn (frame, this, &args); - if (ret) { - need_unwind = 1; - } + need_unwind = 1; + goto out; + } + + conf = this->private; + if (!conf || !conf->fops) { + op_errno = ENOTCONN; + need_unwind = 1; + goto out; + } + + args.loc = loc; + args.xattr = dict; + args.flags = flags; + args.xdata = xdata; + + proc = &conf->fops->proctable[GF_FOP_SETXATTR]; + if (proc->fn) { + ret = proc->fn(frame, this, &args); + if (ret) { + need_unwind = 1; } + } out: - if (need_unwind) - STACK_UNWIND_STRICT (setxattr, frame, op_ret, op_errno, NULL); + if (need_unwind) + STACK_UNWIND_STRICT(setxattr, frame, op_ret, op_errno, NULL); - return 0; + return 0; } - - int32_t -client_fsetxattr (call_frame_t *frame, xlator_t *this, fd_t *fd, - dict_t *dict, int32_t flags, dict_t *xdata) +client_fsetxattr(call_frame_t *frame, xlator_t *this, fd_t *fd, dict_t *dict, + int32_t flags, dict_t *xdata) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; - conf = this->private; - if (!conf || !conf->fops) - goto out; + conf = this->private; + if (!conf || !conf->fops) + goto out; - args.fd = fd; - args.xattr = dict; - args.flags = flags; - args.xdata = xdata; + args.fd = fd; + args.xattr = dict; + args.flags = flags; + args.xdata = xdata; - proc = &conf->fops->proctable[GF_FOP_FSETXATTR]; - if (proc->fn) - ret = proc->fn (frame, this, &args); + proc = &conf->fops->proctable[GF_FOP_FSETXATTR]; + if (proc->fn) + ret = proc->fn(frame, this, &args); out: - if (ret) - STACK_UNWIND_STRICT (fsetxattr, frame, -1, ENOTCONN, NULL); + if (ret) + STACK_UNWIND_STRICT(fsetxattr, frame, -1, ENOTCONN, NULL); - return 0; + return 0; } - - - int32_t -client_fgetxattr (call_frame_t *frame, xlator_t *this, fd_t *fd, - const char *name, dict_t *xdata) +client_fgetxattr(call_frame_t *frame, xlator_t *this, fd_t *fd, + const char *name, dict_t *xdata) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; - conf = this->private; - if (!conf || !conf->fops) - goto out; + conf = this->private; + if (!conf || !conf->fops) + goto out; - args.fd = fd; - args.name = name; - args.xdata = xdata; + args.fd = fd; + args.name = name; + args.xdata = xdata; - proc = &conf->fops->proctable[GF_FOP_FGETXATTR]; - if (proc->fn) - ret = proc->fn (frame, this, &args); + proc = &conf->fops->proctable[GF_FOP_FGETXATTR]; + if (proc->fn) + ret = proc->fn(frame, this, &args); out: - if (ret) - STACK_UNWIND_STRICT (fgetxattr, frame, -1, ENOTCONN, NULL, NULL); + if (ret) + STACK_UNWIND_STRICT(fgetxattr, frame, -1, ENOTCONN, NULL, NULL); - return 0; + return 0; } - - int32_t -client_getxattr (call_frame_t *frame, xlator_t *this, loc_t *loc, - const char *name, dict_t *xdata) +client_getxattr(call_frame_t *frame, xlator_t *this, loc_t *loc, + const char *name, dict_t *xdata) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; - conf = this->private; - if (!conf || !conf->fops) - goto out; + conf = this->private; + if (!conf || !conf->fops) + goto out; - args.name = name; - args.loc = loc; - args.xdata = xdata; + args.name = name; + args.loc = loc; + args.xdata = xdata; - proc = &conf->fops->proctable[GF_FOP_GETXATTR]; - if (proc->fn) - ret = proc->fn (frame, this, &args); + proc = &conf->fops->proctable[GF_FOP_GETXATTR]; + if (proc->fn) + ret = proc->fn(frame, this, &args); out: - if (ret) - STACK_UNWIND_STRICT (getxattr, frame, -1, ENOTCONN, NULL, NULL); + if (ret) + STACK_UNWIND_STRICT(getxattr, frame, -1, ENOTCONN, NULL, NULL); - return 0; + return 0; } - - int32_t -client_xattrop (call_frame_t *frame, xlator_t *this, loc_t *loc, - gf_xattrop_flags_t flags, dict_t *dict, dict_t *xdata) +client_xattrop(call_frame_t *frame, xlator_t *this, loc_t *loc, + gf_xattrop_flags_t flags, dict_t *dict, dict_t *xdata) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; - conf = this->private; - if (!conf || !conf->fops) - goto out; + conf = this->private; + if (!conf || !conf->fops) + goto out; - args.loc = loc; - args.flags = flags; - args.xattr = dict; - args.xdata = xdata; + args.loc = loc; + args.flags = flags; + args.xattr = dict; + args.xdata = xdata; - proc = &conf->fops->proctable[GF_FOP_XATTROP]; - if (proc->fn) - ret = proc->fn (frame, this, &args); + proc = &conf->fops->proctable[GF_FOP_XATTROP]; + if (proc->fn) + ret = proc->fn(frame, this, &args); out: - if (ret) - STACK_UNWIND_STRICT (xattrop, frame, -1, ENOTCONN, NULL, NULL); + if (ret) + STACK_UNWIND_STRICT(xattrop, frame, -1, ENOTCONN, NULL, NULL); - return 0; + return 0; } - - int32_t -client_fxattrop (call_frame_t *frame, xlator_t *this, fd_t *fd, - gf_xattrop_flags_t flags, dict_t *dict, dict_t *xdata) +client_fxattrop(call_frame_t *frame, xlator_t *this, fd_t *fd, + gf_xattrop_flags_t flags, dict_t *dict, dict_t *xdata) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; - conf = this->private; - if (!conf || !conf->fops) - goto out; + conf = this->private; + if (!conf || !conf->fops) + goto out; - args.fd = fd; - args.flags = flags; - args.xattr = dict; - args.xdata = xdata; + args.fd = fd; + args.flags = flags; + args.xattr = dict; + args.xdata = xdata; - proc = &conf->fops->proctable[GF_FOP_FXATTROP]; - if (proc->fn) - ret = proc->fn (frame, this, &args); + proc = &conf->fops->proctable[GF_FOP_FXATTROP]; + if (proc->fn) + ret = proc->fn(frame, this, &args); out: - if (ret) - STACK_UNWIND_STRICT (fxattrop, frame, -1, ENOTCONN, NULL, NULL); + if (ret) + STACK_UNWIND_STRICT(fxattrop, frame, -1, ENOTCONN, NULL, NULL); - return 0; + return 0; } - - int32_t -client_removexattr (call_frame_t *frame, xlator_t *this, loc_t *loc, - const char *name, dict_t *xdata) +client_removexattr(call_frame_t *frame, xlator_t *this, loc_t *loc, + const char *name, dict_t *xdata) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; - conf = this->private; - if (!conf || !conf->fops) - goto out; + conf = this->private; + if (!conf || !conf->fops) + goto out; - args.name = name; - args.loc = loc; - args.xdata = xdata; + args.name = name; + args.loc = loc; + args.xdata = xdata; - proc = &conf->fops->proctable[GF_FOP_REMOVEXATTR]; - if (proc->fn) - ret = proc->fn (frame, this, &args); + proc = &conf->fops->proctable[GF_FOP_REMOVEXATTR]; + if (proc->fn) + ret = proc->fn(frame, this, &args); out: - if (ret) - STACK_UNWIND_STRICT (removexattr, frame, -1, ENOTCONN, NULL); + if (ret) + STACK_UNWIND_STRICT(removexattr, frame, -1, ENOTCONN, NULL); - return 0; + return 0; } int32_t -client_fremovexattr (call_frame_t *frame, xlator_t *this, fd_t *fd, - const char *name, dict_t *xdata) +client_fremovexattr(call_frame_t *frame, xlator_t *this, fd_t *fd, + const char *name, dict_t *xdata) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; - conf = this->private; - if (!conf || !conf->fops) - goto out; + conf = this->private; + if (!conf || !conf->fops) + goto out; - args.name = name; - args.fd = fd; - args.xdata = xdata; + args.name = name; + args.fd = fd; + args.xdata = xdata; - proc = &conf->fops->proctable[GF_FOP_FREMOVEXATTR]; - if (proc->fn) - ret = proc->fn (frame, this, &args); + proc = &conf->fops->proctable[GF_FOP_FREMOVEXATTR]; + if (proc->fn) + ret = proc->fn(frame, this, &args); out: - if (ret) - STACK_UNWIND_STRICT (fremovexattr, frame, -1, ENOTCONN, NULL); + if (ret) + STACK_UNWIND_STRICT(fremovexattr, frame, -1, ENOTCONN, NULL); - return 0; + return 0; } int32_t -client_lease (call_frame_t *frame, xlator_t *this, loc_t *loc, - struct gf_lease *lease, dict_t *xdata) +client_lease(call_frame_t *frame, xlator_t *this, loc_t *loc, + struct gf_lease *lease, dict_t *xdata) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; - conf = this->private; - if (!conf || !conf->fops) - goto out; + conf = this->private; + if (!conf || !conf->fops) + goto out; - args.loc = loc; - args.lease = lease; - args.xdata = xdata; + args.loc = loc; + args.lease = lease; + args.xdata = xdata; - proc = &conf->fops->proctable[GF_FOP_LEASE]; - if (proc->fn) - ret = proc->fn (frame, this, &args); + proc = &conf->fops->proctable[GF_FOP_LEASE]; + if (proc->fn) + ret = proc->fn(frame, this, &args); out: - if (ret) - STACK_UNWIND_STRICT (lk, frame, -1, ENOTCONN, NULL, NULL); + if (ret) + STACK_UNWIND_STRICT(lk, frame, -1, ENOTCONN, NULL, NULL); - return 0; + return 0; } - int32_t -client_lk (call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t cmd, - struct gf_flock *lock, dict_t *xdata) +client_lk(call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t cmd, + struct gf_flock *lock, dict_t *xdata) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; - conf = this->private; - if (!conf || !conf->fops) - goto out; + conf = this->private; + if (!conf || !conf->fops) + goto out; - args.fd = fd; - args.cmd = cmd; - args.flock = lock; - args.xdata = xdata; + args.fd = fd; + args.cmd = cmd; + args.flock = lock; + args.xdata = xdata; - proc = &conf->fops->proctable[GF_FOP_LK]; - if (proc->fn) - ret = proc->fn (frame, this, &args); + proc = &conf->fops->proctable[GF_FOP_LK]; + if (proc->fn) + ret = proc->fn(frame, this, &args); out: - if (ret) - STACK_UNWIND_STRICT (lk, frame, -1, ENOTCONN, NULL, NULL); + if (ret) + STACK_UNWIND_STRICT(lk, frame, -1, ENOTCONN, NULL, NULL); - return 0; + return 0; } - int32_t -client_inodelk (call_frame_t *frame, xlator_t *this, const char *volume, - loc_t *loc, int32_t cmd, struct gf_flock *lock, dict_t *xdata) +client_inodelk(call_frame_t *frame, xlator_t *this, const char *volume, + loc_t *loc, int32_t cmd, struct gf_flock *lock, dict_t *xdata) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; - conf = this->private; - if (!conf || !conf->fops) - goto out; + conf = this->private; + if (!conf || !conf->fops) + goto out; - args.loc = loc; - args.cmd = cmd; - args.flock = lock; - args.volume = volume; - args.xdata = xdata; + args.loc = loc; + args.cmd = cmd; + args.flock = lock; + args.volume = volume; + args.xdata = xdata; - proc = &conf->fops->proctable[GF_FOP_INODELK]; - if (proc->fn) - ret = proc->fn (frame, this, &args); + proc = &conf->fops->proctable[GF_FOP_INODELK]; + if (proc->fn) + ret = proc->fn(frame, this, &args); out: - if (ret) - STACK_UNWIND_STRICT (inodelk, frame, -1, ENOTCONN, NULL); + if (ret) + STACK_UNWIND_STRICT(inodelk, frame, -1, ENOTCONN, NULL); - return 0; + return 0; } - - int32_t -client_finodelk (call_frame_t *frame, xlator_t *this, const char *volume, - fd_t *fd, int32_t cmd, struct gf_flock *lock, dict_t *xdata) +client_finodelk(call_frame_t *frame, xlator_t *this, const char *volume, + fd_t *fd, int32_t cmd, struct gf_flock *lock, dict_t *xdata) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; - conf = this->private; - if (!conf || !conf->fops) - goto out; + conf = this->private; + if (!conf || !conf->fops) + goto out; - args.fd = fd; - args.cmd = cmd; - args.flock = lock; - args.volume = volume; - args.xdata = xdata; + args.fd = fd; + args.cmd = cmd; + args.flock = lock; + args.volume = volume; + args.xdata = xdata; - proc = &conf->fops->proctable[GF_FOP_FINODELK]; - if (proc->fn) - ret = proc->fn (frame, this, &args); + proc = &conf->fops->proctable[GF_FOP_FINODELK]; + if (proc->fn) + ret = proc->fn(frame, this, &args); out: - if (ret) - STACK_UNWIND_STRICT (finodelk, frame, -1, ENOTCONN, NULL); + if (ret) + STACK_UNWIND_STRICT(finodelk, frame, -1, ENOTCONN, NULL); - return 0; + return 0; } - int32_t -client_entrylk (call_frame_t *frame, xlator_t *this, const char *volume, - loc_t *loc, const char *basename, entrylk_cmd cmd, - entrylk_type type, dict_t *xdata) +client_entrylk(call_frame_t *frame, xlator_t *this, const char *volume, + loc_t *loc, const char *basename, entrylk_cmd cmd, + entrylk_type type, dict_t *xdata) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; - conf = this->private; - if (!conf || !conf->fops) - goto out; + conf = this->private; + if (!conf || !conf->fops) + goto out; - args.loc = loc; - args.basename = basename; - args.type = type; - args.volume = volume; - args.cmd_entrylk = cmd; - args.xdata = xdata; + args.loc = loc; + args.basename = basename; + args.type = type; + args.volume = volume; + args.cmd_entrylk = cmd; + args.xdata = xdata; - proc = &conf->fops->proctable[GF_FOP_ENTRYLK]; - if (proc->fn) - ret = proc->fn (frame, this, &args); + proc = &conf->fops->proctable[GF_FOP_ENTRYLK]; + if (proc->fn) + ret = proc->fn(frame, this, &args); out: - if (ret) - STACK_UNWIND_STRICT (entrylk, frame, -1, ENOTCONN, NULL); + if (ret) + STACK_UNWIND_STRICT(entrylk, frame, -1, ENOTCONN, NULL); - return 0; + return 0; } - - int32_t -client_fentrylk (call_frame_t *frame, xlator_t *this, const char *volume, - fd_t *fd, const char *basename, entrylk_cmd cmd, - entrylk_type type, dict_t *xdata) +client_fentrylk(call_frame_t *frame, xlator_t *this, const char *volume, + fd_t *fd, const char *basename, entrylk_cmd cmd, + entrylk_type type, dict_t *xdata) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; - conf = this->private; - if (!conf || !conf->fops) - goto out; + conf = this->private; + if (!conf || !conf->fops) + goto out; - args.fd = fd; - args.basename = basename; - args.type = type; - args.volume = volume; - args.cmd_entrylk = cmd; - args.xdata = xdata; + args.fd = fd; + args.basename = basename; + args.type = type; + args.volume = volume; + args.cmd_entrylk = cmd; + args.xdata = xdata; - proc = &conf->fops->proctable[GF_FOP_FENTRYLK]; - if (proc->fn) - ret = proc->fn (frame, this, &args); + proc = &conf->fops->proctable[GF_FOP_FENTRYLK]; + if (proc->fn) + ret = proc->fn(frame, this, &args); out: - if (ret) - STACK_UNWIND_STRICT (fentrylk, frame, -1, ENOTCONN, NULL); + if (ret) + STACK_UNWIND_STRICT(fentrylk, frame, -1, ENOTCONN, NULL); - return 0; + return 0; } - int32_t -client_rchecksum (call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset, - int32_t len, dict_t *xdata) +client_rchecksum(call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset, + int32_t len, dict_t *xdata) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; - conf = this->private; - if (!conf || !conf->fops) - goto out; + conf = this->private; + if (!conf || !conf->fops) + goto out; - args.fd = fd; - args.offset = offset; - args.len = len; - args.xdata = xdata; + args.fd = fd; + args.offset = offset; + args.len = len; + args.xdata = xdata; - proc = &conf->fops->proctable[GF_FOP_RCHECKSUM]; - if (proc->fn) - ret = proc->fn (frame, this, &args); + proc = &conf->fops->proctable[GF_FOP_RCHECKSUM]; + if (proc->fn) + ret = proc->fn(frame, this, &args); out: - if (ret) - STACK_UNWIND_STRICT (rchecksum, frame, -1, ENOTCONN, 0, NULL, NULL); + if (ret) + STACK_UNWIND_STRICT(rchecksum, frame, -1, ENOTCONN, 0, NULL, NULL); - return 0; + return 0; } int32_t -client_readdir (call_frame_t *frame, xlator_t *this, fd_t *fd, - size_t size, off_t off, dict_t *xdata) +client_readdir(call_frame_t *frame, xlator_t *this, fd_t *fd, size_t size, + off_t off, dict_t *xdata) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; - conf = this->private; - if (!conf || !conf->fops) - goto out; + conf = this->private; + if (!conf || !conf->fops) + goto out; - if (off != 0) - off = gf_dirent_orig_offset(this, off); + if (off != 0) + off = gf_dirent_orig_offset(this, off); - args.fd = fd; - args.size = size; - args.offset = off; - args.xdata = xdata; + args.fd = fd; + args.size = size; + args.offset = off; + args.xdata = xdata; - proc = &conf->fops->proctable[GF_FOP_READDIR]; - if (proc->fn) - ret = proc->fn (frame, this, &args); + proc = &conf->fops->proctable[GF_FOP_READDIR]; + if (proc->fn) + ret = proc->fn(frame, this, &args); out: - if (ret) - STACK_UNWIND_STRICT (readdir, frame, -1, ENOTCONN, NULL, NULL); + if (ret) + STACK_UNWIND_STRICT(readdir, frame, -1, ENOTCONN, NULL, NULL); - return 0; + return 0; } - int32_t -client_readdirp (call_frame_t *frame, xlator_t *this, fd_t *fd, - size_t size, off_t off, dict_t *dict) +client_readdirp(call_frame_t *frame, xlator_t *this, fd_t *fd, size_t size, + off_t off, dict_t *dict) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; - conf = this->private; - if (!conf || !conf->fops) - goto out; + conf = this->private; + if (!conf || !conf->fops) + goto out; - if (off != 0) - off = gf_dirent_orig_offset(this, off); + if (off != 0) + off = gf_dirent_orig_offset(this, off); - args.fd = fd; - args.size = size; - args.offset = off; - args.xdata = dict; + args.fd = fd; + args.size = size; + args.offset = off; + args.xdata = dict; - proc = &conf->fops->proctable[GF_FOP_READDIRP]; - if (proc->fn) - ret = proc->fn (frame, this, &args); + proc = &conf->fops->proctable[GF_FOP_READDIRP]; + if (proc->fn) + ret = proc->fn(frame, this, &args); out: - if (ret) - STACK_UNWIND_STRICT (readdirp, frame, -1, ENOTCONN, NULL, NULL); + if (ret) + STACK_UNWIND_STRICT(readdirp, frame, -1, ENOTCONN, NULL, NULL); - return 0; + return 0; } - int32_t -client_setattr (call_frame_t *frame, xlator_t *this, loc_t *loc, - struct iatt *stbuf, int32_t valid, dict_t *xdata) +client_setattr(call_frame_t *frame, xlator_t *this, loc_t *loc, + struct iatt *stbuf, int32_t valid, dict_t *xdata) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; - conf = this->private; - if (!conf || !conf->fops) - goto out; + conf = this->private; + if (!conf || !conf->fops) + goto out; - args.loc = loc; - args.stbuf = stbuf; - args.valid = valid; - args.xdata = xdata; + args.loc = loc; + args.stbuf = stbuf; + args.valid = valid; + args.xdata = xdata; - proc = &conf->fops->proctable[GF_FOP_SETATTR]; - if (proc->fn) - ret = proc->fn (frame, this, &args); + proc = &conf->fops->proctable[GF_FOP_SETATTR]; + if (proc->fn) + ret = proc->fn(frame, this, &args); out: - if (ret) - STACK_UNWIND_STRICT (setattr, frame, -1, ENOTCONN, NULL, NULL, NULL); + if (ret) + STACK_UNWIND_STRICT(setattr, frame, -1, ENOTCONN, NULL, NULL, NULL); - return 0; + return 0; } int32_t -client_fsetattr (call_frame_t *frame, xlator_t *this, fd_t *fd, - struct iatt *stbuf, int32_t valid, dict_t *xdata) +client_fsetattr(call_frame_t *frame, xlator_t *this, fd_t *fd, + struct iatt *stbuf, int32_t valid, dict_t *xdata) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; - conf = this->private; - if (!conf || !conf->fops) - goto out; + conf = this->private; + if (!conf || !conf->fops) + goto out; - args.fd = fd; - args.stbuf = stbuf; - args.valid = valid; - args.xdata = xdata; + args.fd = fd; + args.stbuf = stbuf; + args.valid = valid; + args.xdata = xdata; - proc = &conf->fops->proctable[GF_FOP_FSETATTR]; - if (proc->fn) - ret = proc->fn (frame, this, &args); + proc = &conf->fops->proctable[GF_FOP_FSETATTR]; + if (proc->fn) + ret = proc->fn(frame, this, &args); out: - if (ret) - STACK_UNWIND_STRICT (fsetattr, frame, -1, ENOTCONN, NULL, NULL, NULL); + if (ret) + STACK_UNWIND_STRICT(fsetattr, frame, -1, ENOTCONN, NULL, NULL, NULL); - return 0; + return 0; } int32_t client_fallocate(call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t mode, - off_t offset, size_t len, dict_t *xdata) + off_t offset, size_t len, dict_t *xdata) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; - conf = this->private; - if (!conf || !conf->fops) - goto out; + conf = this->private; + if (!conf || !conf->fops) + goto out; - args.fd = fd; - args.flags = mode; - args.offset = offset; - args.size = len; - args.xdata = xdata; + args.fd = fd; + args.flags = mode; + args.offset = offset; + args.size = len; + args.xdata = xdata; - proc = &conf->fops->proctable[GF_FOP_FALLOCATE]; - if (proc->fn) - ret = proc->fn (frame, this, &args); + proc = &conf->fops->proctable[GF_FOP_FALLOCATE]; + if (proc->fn) + ret = proc->fn(frame, this, &args); out: - if (ret) - STACK_UNWIND_STRICT (fallocate, frame, -1, ENOTCONN, NULL, NULL, NULL); + if (ret) + STACK_UNWIND_STRICT(fallocate, frame, -1, ENOTCONN, NULL, NULL, NULL); - return 0; + return 0; } int32_t client_discard(call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset, - size_t len, dict_t *xdata) + size_t len, dict_t *xdata) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; - conf = this->private; - if (!conf || !conf->fops) - goto out; + conf = this->private; + if (!conf || !conf->fops) + goto out; - args.fd = fd; - args.offset = offset; - args.size = len; - args.xdata = xdata; + args.fd = fd; + args.offset = offset; + args.size = len; + args.xdata = xdata; - proc = &conf->fops->proctable[GF_FOP_DISCARD]; - if (proc->fn) - ret = proc->fn (frame, this, &args); + proc = &conf->fops->proctable[GF_FOP_DISCARD]; + if (proc->fn) + ret = proc->fn(frame, this, &args); out: - if (ret) - STACK_UNWIND_STRICT(discard, frame, -1, ENOTCONN, NULL, NULL, NULL); + if (ret) + STACK_UNWIND_STRICT(discard, frame, -1, ENOTCONN, NULL, NULL, NULL); - return 0; + return 0; } int32_t client_zerofill(call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset, - off_t len, dict_t *xdata) + off_t len, dict_t *xdata) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; - conf = this->private; - if (!conf || !conf->fops) - goto out; + conf = this->private; + if (!conf || !conf->fops) + goto out; - args.fd = fd; - args.offset = offset; - args.size = len; - args.xdata = xdata; + args.fd = fd; + args.offset = offset; + args.size = len; + args.xdata = xdata; - proc = &conf->fops->proctable[GF_FOP_ZEROFILL]; - if (proc->fn) - ret = proc->fn (frame, this, &args); + proc = &conf->fops->proctable[GF_FOP_ZEROFILL]; + if (proc->fn) + ret = proc->fn(frame, this, &args); out: - if (ret) - STACK_UNWIND_STRICT(zerofill, frame, -1, ENOTCONN, - NULL, NULL, NULL); + if (ret) + STACK_UNWIND_STRICT(zerofill, frame, -1, ENOTCONN, NULL, NULL, NULL); - return 0; + return 0; } - int32_t -client_ipc (call_frame_t *frame, xlator_t *this, int32_t op, dict_t *xdata) +client_ipc(call_frame_t *frame, xlator_t *this, int32_t op, dict_t *xdata) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; - conf = this->private; - if (!conf || !conf->fops) - goto out; + conf = this->private; + if (!conf || !conf->fops) + goto out; - args.cmd = op; - args.xdata = xdata; + args.cmd = op; + args.xdata = xdata; - proc = &conf->fops->proctable[GF_FOP_IPC]; - if (proc->fn) - ret = proc->fn (frame, this, &args); + proc = &conf->fops->proctable[GF_FOP_IPC]; + if (proc->fn) + ret = proc->fn(frame, this, &args); out: - if (ret) - STACK_UNWIND_STRICT(ipc, frame, -1, ENOTCONN, NULL); + if (ret) + STACK_UNWIND_STRICT(ipc, frame, -1, ENOTCONN, NULL); - return 0; + return 0; } - int32_t -client_seek (call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset, - gf_seek_what_t what, dict_t *xdata) +client_seek(call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset, + gf_seek_what_t what, dict_t *xdata) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; - conf = this->private; - if (!conf || !conf->fops) - goto out; + conf = this->private; + if (!conf || !conf->fops) + goto out; - args.fd = fd; - args.offset = offset; - args.what = what; - args.xdata = xdata; + args.fd = fd; + args.offset = offset; + args.what = what; + args.xdata = xdata; - proc = &conf->fops->proctable[GF_FOP_SEEK]; - if (proc->fn) - ret = proc->fn (frame, this, &args); + proc = &conf->fops->proctable[GF_FOP_SEEK]; + if (proc->fn) + ret = proc->fn(frame, this, &args); out: - if (ret) - STACK_UNWIND_STRICT(seek, frame, -1, ENOTCONN, 0, NULL); + if (ret) + STACK_UNWIND_STRICT(seek, frame, -1, ENOTCONN, 0, NULL); - return 0; + return 0; } int32_t -client_getactivelk (call_frame_t *frame, xlator_t *this, loc_t *loc, - dict_t *xdata) +client_getactivelk(call_frame_t *frame, xlator_t *this, loc_t *loc, + dict_t *xdata) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; - - conf = this->private; - if (!conf || !conf->fops) - goto out; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; + conf = this->private; + if (!conf || !conf->fops) + goto out; - args.loc = loc; - args.xdata = xdata; + args.loc = loc; + args.xdata = xdata; - proc = &conf->fops->proctable[GF_FOP_GETACTIVELK]; - if (proc->fn) - ret = proc->fn (frame, this, &args); + proc = &conf->fops->proctable[GF_FOP_GETACTIVELK]; + if (proc->fn) + ret = proc->fn(frame, this, &args); out: - if (ret) - STACK_UNWIND_STRICT (getactivelk, frame, -1, ENOTCONN, NULL, - NULL); + if (ret) + STACK_UNWIND_STRICT(getactivelk, frame, -1, ENOTCONN, NULL, NULL); - return 0; + return 0; } int32_t -client_setactivelk (call_frame_t *frame, xlator_t *this, loc_t *loc, - lock_migration_info_t *locklist, dict_t *xdata) +client_setactivelk(call_frame_t *frame, xlator_t *this, loc_t *loc, + lock_migration_info_t *locklist, dict_t *xdata) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; - - conf = this->private; - if (!conf || !conf->fops) - goto out; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; + conf = this->private; + if (!conf || !conf->fops) + goto out; - args.loc = loc; - args.xdata = xdata; - args.locklist = locklist; + args.loc = loc; + args.xdata = xdata; + args.locklist = locklist; - proc = &conf->fops->proctable[GF_FOP_SETACTIVELK]; - if (proc->fn) - ret = proc->fn (frame, this, &args); + proc = &conf->fops->proctable[GF_FOP_SETACTIVELK]; + if (proc->fn) + ret = proc->fn(frame, this, &args); out: - if (ret) - STACK_UNWIND_STRICT (setactivelk, frame, -1, ENOTCONN, NULL); + if (ret) + STACK_UNWIND_STRICT(setactivelk, frame, -1, ENOTCONN, NULL); - return 0; + return 0; } int32_t -client_getspec (call_frame_t *frame, xlator_t *this, const char *key, - int32_t flags) +client_getspec(call_frame_t *frame, xlator_t *this, const char *key, + int32_t flags) { - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; - conf = this->private; - if (!conf || !conf->fops || !conf->handshake) - goto out; + conf = this->private; + if (!conf || !conf->fops || !conf->handshake) + goto out; - args.name = key; - args.flags = flags; + args.name = key; + args.flags = flags; - /* For all other xlators, getspec is an fop, hence its in fops table */ - proc = &conf->fops->proctable[GF_FOP_GETSPEC]; - if (proc->fn) { - /* But at protocol level, this is handshake */ - ret = proc->fn (frame, this, &args); - } + /* For all other xlators, getspec is an fop, hence its in fops table */ + proc = &conf->fops->proctable[GF_FOP_GETSPEC]; + if (proc->fn) { + /* But at protocol level, this is handshake */ + ret = proc->fn(frame, this, &args); + } out: - if (ret) - STACK_UNWIND_STRICT (getspec, frame, -1, EINVAL, NULL); + if (ret) + STACK_UNWIND_STRICT(getspec, frame, -1, EINVAL, NULL); - return 0; + return 0; } - int32_t -client_compound (call_frame_t *frame, xlator_t *this, - void *data, dict_t *xdata) +client_compound(call_frame_t *frame, xlator_t *this, void *data, dict_t *xdata) { - int ret = -1; - clnt_conf_t *conf = NULL; - compound_args_t *args = data; - rpc_clnt_procedure_t *proc = NULL; + int ret = -1; + clnt_conf_t *conf = NULL; + compound_args_t *args = data; + rpc_clnt_procedure_t *proc = NULL; - conf = this->private; - if (!conf || !conf->fops) - goto out; + conf = this->private; + if (!conf || !conf->fops) + goto out; - args->xdata = xdata; + args->xdata = xdata; - proc = &conf->fops->proctable[GF_FOP_COMPOUND]; - if (proc->fn) - ret = proc->fn (frame, this, args); + proc = &conf->fops->proctable[GF_FOP_COMPOUND]; + if (proc->fn) + ret = proc->fn(frame, this, args); out: - if (ret) - STACK_UNWIND_STRICT (compound, frame, -1, ENOTCONN, - NULL, NULL); + if (ret) + STACK_UNWIND_STRICT(compound, frame, -1, ENOTCONN, NULL, NULL); - return 0; + return 0; } int32_t -client_namelink (call_frame_t *frame, xlator_t *this, loc_t *loc, dict_t *xdata) +client_namelink(call_frame_t *frame, xlator_t *this, loc_t *loc, dict_t *xdata) { - int32_t ret = -1; - clnt_conf_t *conf = NULL; - clnt_args_t args = {0,}; - rpc_clnt_procedure_t *proc = NULL; + int32_t ret = -1; + clnt_conf_t *conf = NULL; + clnt_args_t args = { + 0, + }; + rpc_clnt_procedure_t *proc = NULL; - conf = this->private; - if (!conf || !conf->fops || !conf->handshake) - goto out; + conf = this->private; + if (!conf || !conf->fops || !conf->handshake) + goto out; - args.loc = loc; - args.xdata = xdata; + args.loc = loc; + args.xdata = xdata; - proc = &conf->fops->proctable[GF_FOP_NAMELINK]; - if (proc->fn) - ret = proc->fn (frame, this, &args); + proc = &conf->fops->proctable[GF_FOP_NAMELINK]; + if (proc->fn) + ret = proc->fn(frame, this, &args); - out: - if (ret) - STACK_UNWIND_STRICT (namelink, frame, - -1, EINVAL, NULL, NULL, NULL); - return 0; +out: + if (ret) + STACK_UNWIND_STRICT(namelink, frame, -1, EINVAL, NULL, NULL, NULL); + return 0; } int32_t -client_icreate (call_frame_t *frame, - xlator_t *this, loc_t *loc, mode_t mode, dict_t *xdata) +client_icreate(call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode, + dict_t *xdata) { - int32_t ret = -1; - clnt_conf_t *conf = NULL; - clnt_args_t args = {0,}; - rpc_clnt_procedure_t *proc = NULL; + int32_t ret = -1; + clnt_conf_t *conf = NULL; + clnt_args_t args = { + 0, + }; + rpc_clnt_procedure_t *proc = NULL; - conf = this->private; - if (!conf || !conf->fops || !conf->handshake) - goto out; + conf = this->private; + if (!conf || !conf->fops || !conf->handshake) + goto out; - args.loc = loc; - args.mode = mode; - args.xdata = xdata; + args.loc = loc; + args.mode = mode; + args.xdata = xdata; - proc = &conf->fops->proctable[GF_FOP_ICREATE]; - if (proc->fn) - ret = proc->fn (frame, this, &args); + proc = &conf->fops->proctable[GF_FOP_ICREATE]; + if (proc->fn) + ret = proc->fn(frame, this, &args); - out: - if (ret) - STACK_UNWIND_STRICT (icreate, frame, - -1, EINVAL, NULL, NULL, NULL); - return 0; +out: + if (ret) + STACK_UNWIND_STRICT(icreate, frame, -1, EINVAL, NULL, NULL, NULL); + return 0; } int32_t -client_put (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode, - mode_t umask, uint32_t flags, struct iovec *vector, int32_t count, - off_t off, struct iobref *iobref, dict_t *xattr, dict_t *xdata) -{ - int ret = -1; - clnt_conf_t *conf = NULL; - rpc_clnt_procedure_t *proc = NULL; - clnt_args_t args = {0,}; - - conf = this->private; - if (!conf || !conf->fops) - goto out; - - args.loc = loc; - args.mode = mode; - args.umask = umask; - args.flags = flags; - args.vector = vector; - args.count = count; - args.offset = off; - args.size = iov_length (vector, count); - args.iobref = iobref; - args.xattr = xattr; - args.xdata = xdata; - - client_filter_o_direct (conf, &args.flags); - - proc = &conf->fops->proctable[GF_FOP_PUT]; - if (proc->fn) - ret = proc->fn (frame, this, &args); -out: - if (ret) - STACK_UNWIND_STRICT (put, frame, -1, ENOTCONN, NULL, NULL, - NULL, NULL, NULL); - - return 0; +client_put(call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode, + mode_t umask, uint32_t flags, struct iovec *vector, int32_t count, + off_t off, struct iobref *iobref, dict_t *xattr, dict_t *xdata) +{ + int ret = -1; + clnt_conf_t *conf = NULL; + rpc_clnt_procedure_t *proc = NULL; + clnt_args_t args = { + 0, + }; + + conf = this->private; + if (!conf || !conf->fops) + goto out; + + args.loc = loc; + args.mode = mode; + args.umask = umask; + args.flags = flags; + args.vector = vector; + args.count = count; + args.offset = off; + args.size = iov_length(vector, count); + args.iobref = iobref; + args.xattr = xattr; + args.xdata = xdata; + + client_filter_o_direct(conf, &args.flags); + + proc = &conf->fops->proctable[GF_FOP_PUT]; + if (proc->fn) + ret = proc->fn(frame, this, &args); +out: + if (ret) + STACK_UNWIND_STRICT(put, frame, -1, ENOTCONN, NULL, NULL, NULL, NULL, + NULL); + + return 0; } int -client_mark_fd_bad (xlator_t *this) +client_mark_fd_bad(xlator_t *this) { - clnt_conf_t *conf = NULL; - clnt_fd_ctx_t *tmp = NULL, *fdctx = NULL; + clnt_conf_t *conf = NULL; + clnt_fd_ctx_t *tmp = NULL, *fdctx = NULL; - conf = this->private; + conf = this->private; - pthread_spin_lock (&conf->fd_lock); + pthread_spin_lock(&conf->fd_lock); + { + list_for_each_entry_safe(fdctx, tmp, &conf->saved_fds, sfd_pos) { - list_for_each_entry_safe (fdctx, tmp, &conf->saved_fds, - sfd_pos) { - fdctx->remote_fd = -1; - } + fdctx->remote_fd = -1; } - pthread_spin_unlock (&conf->fd_lock); + } + pthread_spin_unlock(&conf->fd_lock); - return 0; + return 0; } - int -client_rpc_notify (struct rpc_clnt *rpc, void *mydata, rpc_clnt_event_t event, - void *data) -{ - xlator_t *this = NULL; - clnt_conf_t *conf = NULL; - int ret = 0; - - this = mydata; - if (!this || !this->private) { - gf_msg ("client", GF_LOG_ERROR, EINVAL, PC_MSG_INVALID_ENTRY, - (this != NULL) ? - "private structure of the xlator is NULL": - "xlator is NULL"); - goto out; - } - - conf = this->private; - - switch (event) { - case RPC_CLNT_PING: - { - ret = default_notify (this, GF_EVENT_CHILD_PING, data); - if (ret) - gf_log (this->name, GF_LOG_INFO, - "CHILD_PING notify failed"); - conf->last_sent_event = GF_EVENT_CHILD_PING; - break; +client_rpc_notify(struct rpc_clnt *rpc, void *mydata, rpc_clnt_event_t event, + void *data) +{ + xlator_t *this = NULL; + clnt_conf_t *conf = NULL; + int ret = 0; + + this = mydata; + if (!this || !this->private) { + gf_msg("client", GF_LOG_ERROR, EINVAL, PC_MSG_INVALID_ENTRY, + (this != NULL) ? "private structure of the xlator is NULL" + : "xlator is NULL"); + goto out; + } + + conf = this->private; + + switch (event) { + case RPC_CLNT_PING: { + ret = default_notify(this, GF_EVENT_CHILD_PING, data); + if (ret) + gf_log(this->name, GF_LOG_INFO, "CHILD_PING notify failed"); + conf->last_sent_event = GF_EVENT_CHILD_PING; + break; } - case RPC_CLNT_CONNECT: - { - conf->can_log_disconnect = 1; - // connect happened, send 'get_supported_versions' mop - - gf_msg_debug (this->name, 0, "got RPC_CLNT_CONNECT"); - - ret = client_handshake (this, rpc); - if (ret) - gf_msg (this->name, GF_LOG_WARNING, 0, - PC_MSG_HANDSHAKE_RETURN, "handshake " - "msg returned %d", ret); - break; + case RPC_CLNT_CONNECT: { + conf->can_log_disconnect = 1; + // connect happened, send 'get_supported_versions' mop + + gf_msg_debug(this->name, 0, "got RPC_CLNT_CONNECT"); + + ret = client_handshake(this, rpc); + if (ret) + gf_msg(this->name, GF_LOG_WARNING, 0, PC_MSG_HANDSHAKE_RETURN, + "handshake " + "msg returned %d", + ret); + break; } case RPC_CLNT_DISCONNECT: - gf_msg_debug (this->name, 0, "got RPC_CLNT_DISCONNECT"); - - client_mark_fd_bad (this); - - if (!conf->skip_notify) { - if (conf->can_log_disconnect) { - if (!conf->disconnect_err_logged) { - gf_msg (this->name, GF_LOG_INFO, 0, - PC_MSG_CLIENT_DISCONNECTED, - "disconnected from %s. Client " - "process will keep trying to " - "connect to glusterd until " - "brick's port is available", - conf->rpc->conn.name); - } else { - gf_msg_debug (this->name, 0, - "disconnected from %s. " - "Client process will keep" - " trying to connect to " - "glusterd until brick's " - "port is available", - conf->rpc->conn.name); - } - if (conf->portmap_err_logged) - conf->disconnect_err_logged = 1; - } - /* If the CHILD_DOWN event goes to parent xlator - multiple times, the logic of parent xlator notify - may get screwed up.. (eg. CHILD_MODIFIED event in - replicate), hence make sure events which are passed - to parent are genuine */ - ret = client_notify_dispatch_uniq (this, - GF_EVENT_CHILD_DOWN, - NULL); - if (ret) - gf_msg (this->name, GF_LOG_INFO, 0, - PC_MSG_CHILD_DOWN_NOTIFY_FAILED, - "CHILD_DOWN notify failed"); - - } else { - if (conf->can_log_disconnect) - gf_msg_debug (this->name, 0, - "disconnected (skipped notify)"); + gf_msg_debug(this->name, 0, "got RPC_CLNT_DISCONNECT"); + + client_mark_fd_bad(this); + + if (!conf->skip_notify) { + if (conf->can_log_disconnect) { + if (!conf->disconnect_err_logged) { + gf_msg(this->name, GF_LOG_INFO, 0, + PC_MSG_CLIENT_DISCONNECTED, + "disconnected from %s. Client " + "process will keep trying to " + "connect to glusterd until " + "brick's port is available", + conf->rpc->conn.name); + } else { + gf_msg_debug(this->name, 0, + "disconnected from %s. " + "Client process will keep" + " trying to connect to " + "glusterd until brick's " + "port is available", + conf->rpc->conn.name); + } + if (conf->portmap_err_logged) + conf->disconnect_err_logged = 1; } - - conf->connected = 0; - conf->can_log_disconnect = 0; - conf->skip_notify = 0; - - if (conf->quick_reconnect) { - conf->quick_reconnect = 0; - rpc_clnt_cleanup_and_start (rpc); - - } else { - rpc->conn.config.remote_port = 0; - } - break; + /* If the CHILD_DOWN event goes to parent xlator + multiple times, the logic of parent xlator notify + may get screwed up.. (eg. CHILD_MODIFIED event in + replicate), hence make sure events which are passed + to parent are genuine */ + ret = client_notify_dispatch_uniq(this, GF_EVENT_CHILD_DOWN, + NULL); + if (ret) + gf_msg(this->name, GF_LOG_INFO, 0, + PC_MSG_CHILD_DOWN_NOTIFY_FAILED, + "CHILD_DOWN notify failed"); + + } else { + if (conf->can_log_disconnect) + gf_msg_debug(this->name, 0, + "disconnected (skipped notify)"); + } + + conf->connected = 0; + conf->can_log_disconnect = 0; + conf->skip_notify = 0; + + if (conf->quick_reconnect) { + conf->quick_reconnect = 0; + rpc_clnt_cleanup_and_start(rpc); + + } else { + rpc->conn.config.remote_port = 0; + } + break; case RPC_CLNT_DESTROY: - ret = client_fini_complete (this); - break; + ret = client_fini_complete(this); + break; default: - gf_msg_trace (this->name, 0, - "got some other RPC event %d", event); + gf_msg_trace(this->name, 0, "got some other RPC event %d", event); - break; - } + break; + } out: - return 0; + return 0; } - int -notify (xlator_t *this, int32_t event, void *data, ...) +notify(xlator_t *this, int32_t event, void *data, ...) { - clnt_conf_t *conf = NULL; + clnt_conf_t *conf = NULL; - conf = this->private; - if (!conf) - return 0; + conf = this->private; + if (!conf) + return 0; - switch (event) { - case GF_EVENT_PARENT_UP: - { - gf_msg (this->name, GF_LOG_INFO, 0, PC_MSG_PARENT_UP, - "parent translators are ready, attempting connect " - "on transport"); + switch (event) { + case GF_EVENT_PARENT_UP: { + gf_msg(this->name, GF_LOG_INFO, 0, PC_MSG_PARENT_UP, + "parent translators are ready, attempting connect " + "on transport"); - rpc_clnt_start (conf->rpc); - break; + rpc_clnt_start(conf->rpc); + break; } case GF_EVENT_PARENT_DOWN: - gf_msg (this->name, GF_LOG_INFO, 0, PC_MSG_PARENT_DOWN, - "current graph is no longer active, destroying " - "rpc_client "); + gf_msg(this->name, GF_LOG_INFO, 0, PC_MSG_PARENT_DOWN, + "current graph is no longer active, destroying " + "rpc_client "); - pthread_mutex_lock (&conf->lock); - { - conf->parent_down = 1; - } - pthread_mutex_unlock (&conf->lock); + pthread_mutex_lock(&conf->lock); + { + conf->parent_down = 1; + } + pthread_mutex_unlock(&conf->lock); - rpc_clnt_disable (conf->rpc); - break; + rpc_clnt_disable(conf->rpc); + break; default: - gf_msg_debug (this->name, 0, - "got %d, calling default_notify ()", event); + gf_msg_debug(this->name, 0, "got %d, calling default_notify ()", + event); - default_notify (this, event, data); - conf->last_sent_event = event; - break; - } + default_notify(this, event, data); + conf->last_sent_event = event; + break; + } - return 0; + return 0; } int -client_check_remote_host (xlator_t *this, dict_t *options) -{ - char *remote_host = NULL; - int ret = -1; - - ret = dict_get_str (options, "remote-host", &remote_host); - if (ret < 0) { - gf_msg (this->name, GF_LOG_INFO, EINVAL, - PC_MSG_DICT_GET_FAILED, "Remote host is not set. " - "Assuming the volfile server as remote host"); - - if (!this->ctx->cmd_args.volfile_server) { - gf_msg (this->name, GF_LOG_ERROR, EINVAL, - PC_MSG_DICT_GET_FAILED, "No remote host to " - "connect."); - goto out; - } +client_check_remote_host(xlator_t *this, dict_t *options) +{ + char *remote_host = NULL; + int ret = -1; + + ret = dict_get_str(options, "remote-host", &remote_host); + if (ret < 0) { + gf_msg(this->name, GF_LOG_INFO, EINVAL, PC_MSG_DICT_GET_FAILED, + "Remote host is not set. " + "Assuming the volfile server as remote host"); + + if (!this->ctx->cmd_args.volfile_server) { + gf_msg(this->name, GF_LOG_ERROR, EINVAL, PC_MSG_DICT_GET_FAILED, + "No remote host to " + "connect."); + goto out; + } - ret = dict_set_str (options, "remote-host", - this->ctx->cmd_args.volfile_server); - if (ret == -1) { - gf_msg (this->name, GF_LOG_ERROR, 0, - PC_MSG_DICT_GET_FAILED, "Failed to set the " - "remote host"); - goto out; - } + ret = dict_set_str(options, "remote-host", + this->ctx->cmd_args.volfile_server); + if (ret == -1) { + gf_msg(this->name, GF_LOG_ERROR, 0, PC_MSG_DICT_GET_FAILED, + "Failed to set the " + "remote host"); + goto out; } + } - ret = 0; + ret = 0; out: - return ret; + return ret; } int -build_client_config (xlator_t *this, clnt_conf_t *conf) +build_client_config(xlator_t *this, clnt_conf_t *conf) { - int ret = -1; + int ret = -1; - if (!conf) - goto out; + if (!conf) + goto out; - GF_OPTION_INIT ("frame-timeout", conf->rpc_conf.rpc_timeout, - int32, out); + GF_OPTION_INIT("frame-timeout", conf->rpc_conf.rpc_timeout, int32, out); - GF_OPTION_INIT ("remote-port", conf->rpc_conf.remote_port, - int32, out); + GF_OPTION_INIT("remote-port", conf->rpc_conf.remote_port, int32, out); - GF_OPTION_INIT ("ping-timeout", conf->opt.ping_timeout, - int32, out); + GF_OPTION_INIT("ping-timeout", conf->opt.ping_timeout, int32, out); - GF_OPTION_INIT ("remote-subvolume", conf->opt.remote_subvolume, - path, out); - if (!conf->opt.remote_subvolume) - gf_msg (this->name, GF_LOG_WARNING, EINVAL, - PC_MSG_INVALID_ENTRY, - "option 'remote-subvolume' not given"); + GF_OPTION_INIT("remote-subvolume", conf->opt.remote_subvolume, path, out); + if (!conf->opt.remote_subvolume) + gf_msg(this->name, GF_LOG_WARNING, EINVAL, PC_MSG_INVALID_ENTRY, + "option 'remote-subvolume' not given"); - GF_OPTION_INIT ("filter-O_DIRECT", conf->filter_o_direct, - bool, out); + GF_OPTION_INIT("filter-O_DIRECT", conf->filter_o_direct, bool, out); - GF_OPTION_INIT ("send-gids", conf->send_gids, bool, out); + GF_OPTION_INIT("send-gids", conf->send_gids, bool, out); - conf->client_id = glusterfs_leaf_position(this); + conf->client_id = glusterfs_leaf_position(this); - ret = client_check_remote_host (this, this->options); - if (ret) - goto out; + ret = client_check_remote_host(this, this->options); + if (ret) + goto out; - ret = 0; + ret = 0; out: - return ret; + return ret; } - int32_t -mem_acct_init (xlator_t *this) +mem_acct_init(xlator_t *this) { - int ret = -1; + int ret = -1; - if (!this) - return ret; + if (!this) + return ret; - ret = xlator_mem_acct_init (this, gf_client_mt_end + 1); - - if (ret != 0) { - gf_msg (this->name, GF_LOG_ERROR, ENOMEM, PC_MSG_NO_MEMORY, - "Memory accounting init failed"); - return ret; - } + ret = xlator_mem_acct_init(this, gf_client_mt_end + 1); + if (ret != 0) { + gf_msg(this->name, GF_LOG_ERROR, ENOMEM, PC_MSG_NO_MEMORY, + "Memory accounting init failed"); return ret; + } + + return ret; } int -client_destroy_rpc (xlator_t *this) +client_destroy_rpc(xlator_t *this) { - int ret = -1; - clnt_conf_t *conf = NULL; + int ret = -1; + clnt_conf_t *conf = NULL; - conf = this->private; - if (!conf) - goto out; + conf = this->private; + if (!conf) + goto out; - if (conf->rpc) { - /* cleanup the saved-frames before last unref */ - rpc_clnt_connection_cleanup (&conf->rpc->conn); + if (conf->rpc) { + /* cleanup the saved-frames before last unref */ + rpc_clnt_connection_cleanup(&conf->rpc->conn); - conf->rpc = rpc_clnt_unref (conf->rpc); - ret = 0; - gf_msg_debug (this->name, 0, - "Client rpc conn destroyed"); - goto out; - } + conf->rpc = rpc_clnt_unref(conf->rpc); + ret = 0; + gf_msg_debug(this->name, 0, "Client rpc conn destroyed"); + goto out; + } - gf_msg (this->name, GF_LOG_WARNING, 0, PC_MSG_RPC_INVALID_CALL, - "RPC destroy called on already destroyed " - "connection"); + gf_msg(this->name, GF_LOG_WARNING, 0, PC_MSG_RPC_INVALID_CALL, + "RPC destroy called on already destroyed " + "connection"); out: - return ret; + return ret; } int -client_init_rpc (xlator_t *this) +client_init_rpc(xlator_t *this) { - int ret = -1; - clnt_conf_t *conf = NULL; + int ret = -1; + clnt_conf_t *conf = NULL; - conf = this->private; + conf = this->private; - if (conf->rpc) { - gf_msg (this->name, GF_LOG_WARNING, 0, - PC_MSG_RPC_INITED_ALREADY, "client rpc already " - "init'ed"); - ret = -1; - goto out; - } + if (conf->rpc) { + gf_msg(this->name, GF_LOG_WARNING, 0, PC_MSG_RPC_INITED_ALREADY, + "client rpc already " + "init'ed"); + ret = -1; + goto out; + } - conf->rpc = rpc_clnt_new (this->options, this, this->name, 0); - if (!conf->rpc) { - gf_msg (this->name, GF_LOG_ERROR, 0, PC_MSG_RPC_INIT_FAILED, - "failed to initialize RPC"); - goto out; - } + conf->rpc = rpc_clnt_new(this->options, this, this->name, 0); + if (!conf->rpc) { + gf_msg(this->name, GF_LOG_ERROR, 0, PC_MSG_RPC_INIT_FAILED, + "failed to initialize RPC"); + goto out; + } - ret = rpc_clnt_register_notify (conf->rpc, client_rpc_notify, this); - if (ret) { - gf_msg (this->name, GF_LOG_ERROR, 0, PC_MSG_RPC_NOTIFY_FAILED, - "failed to register notify"); - goto out; - } + ret = rpc_clnt_register_notify(conf->rpc, client_rpc_notify, this); + if (ret) { + gf_msg(this->name, GF_LOG_ERROR, 0, PC_MSG_RPC_NOTIFY_FAILED, + "failed to register notify"); + goto out; + } - conf->handshake = &clnt_handshake_prog; - conf->dump = &clnt_dump_prog; + conf->handshake = &clnt_handshake_prog; + conf->dump = &clnt_dump_prog; - ret = rpcclnt_cbk_program_register (conf->rpc, &gluster_cbk_prog, - this); - if (ret) { - gf_msg (this->name, GF_LOG_ERROR, 0, PC_MSG_RPC_CBK_FAILED, - "failed to register callback program"); - goto out; - } + ret = rpcclnt_cbk_program_register(conf->rpc, &gluster_cbk_prog, this); + if (ret) { + gf_msg(this->name, GF_LOG_ERROR, 0, PC_MSG_RPC_CBK_FAILED, + "failed to register callback program"); + goto out; + } - ret = 0; + ret = 0; - gf_msg_debug (this->name, 0, "client init successful"); + gf_msg_debug(this->name, 0, "client init successful"); out: - return ret; + return ret; } int -client_check_event_threads (xlator_t *this, clnt_conf_t *conf, int32_t old, - int32_t new) +client_check_event_threads(xlator_t *this, clnt_conf_t *conf, int32_t old, + int32_t new) { - if (old == new) - return 0; + if (old == new) + return 0; - conf->event_threads = new; - return event_reconfigure_threads (this->ctx->event_pool, - conf->event_threads); + conf->event_threads = new; + return event_reconfigure_threads(this->ctx->event_pool, + conf->event_threads); } int -reconfigure (xlator_t *this, dict_t *options) -{ - clnt_conf_t *conf = NULL; - int ret = -1; - int subvol_ret = 0; - char *old_remote_subvol = NULL; - char *new_remote_subvol = NULL; - char *old_remote_host = NULL; - char *new_remote_host = NULL; - int32_t new_nthread = 0; - struct rpc_clnt_config rpc_config = {0,}; - - conf = this->private; - - GF_OPTION_RECONF ("frame-timeout", conf->rpc_conf.rpc_timeout, - options, int32, out); - - GF_OPTION_RECONF ("ping-timeout", rpc_config.ping_timeout, - options, int32, out); - - GF_OPTION_RECONF ("event-threads", new_nthread, options, - int32, out); - ret = client_check_event_threads (this, conf, conf->event_threads, - new_nthread); - if (ret) - goto out; - - ret = client_check_remote_host (this, options); - if (ret) - goto out; - - subvol_ret = dict_get_str (this->options, "remote-host", - &old_remote_host); - +reconfigure(xlator_t *this, dict_t *options) +{ + clnt_conf_t *conf = NULL; + int ret = -1; + int subvol_ret = 0; + char *old_remote_subvol = NULL; + char *new_remote_subvol = NULL; + char *old_remote_host = NULL; + char *new_remote_host = NULL; + int32_t new_nthread = 0; + struct rpc_clnt_config rpc_config = { + 0, + }; + + conf = this->private; + + GF_OPTION_RECONF("frame-timeout", conf->rpc_conf.rpc_timeout, options, + int32, out); + + GF_OPTION_RECONF("ping-timeout", rpc_config.ping_timeout, options, int32, + out); + + GF_OPTION_RECONF("event-threads", new_nthread, options, int32, out); + ret = client_check_event_threads(this, conf, conf->event_threads, + new_nthread); + if (ret) + goto out; + + ret = client_check_remote_host(this, options); + if (ret) + goto out; + + subvol_ret = dict_get_str(this->options, "remote-host", &old_remote_host); + + if (subvol_ret == 0) { + subvol_ret = dict_get_str(options, "remote-host", &new_remote_host); if (subvol_ret == 0) { - subvol_ret = dict_get_str (options, "remote-host", - &new_remote_host); - if (subvol_ret == 0) { - if (strcmp (old_remote_host, new_remote_host)) { - ret = 1; - goto out; - } - } + if (strcmp(old_remote_host, new_remote_host)) { + ret = 1; + goto out; + } } + } - subvol_ret = dict_get_str (this->options, "remote-subvolume", - &old_remote_subvol); + subvol_ret = dict_get_str(this->options, "remote-subvolume", + &old_remote_subvol); + if (subvol_ret == 0) { + subvol_ret = dict_get_str(options, "remote-subvolume", + &new_remote_subvol); if (subvol_ret == 0) { - subvol_ret = dict_get_str (options, "remote-subvolume", - &new_remote_subvol); - if (subvol_ret == 0) { - if (strcmp (old_remote_subvol, new_remote_subvol)) { - ret = 1; - goto out; - } - } + if (strcmp(old_remote_subvol, new_remote_subvol)) { + ret = 1; + goto out; + } } + } - /* Reconfiguring client xlator's @rpc with new frame-timeout - * and ping-timeout */ - rpc_clnt_reconfig (conf->rpc, &rpc_config); + /* Reconfiguring client xlator's @rpc with new frame-timeout + * and ping-timeout */ + rpc_clnt_reconfig(conf->rpc, &rpc_config); - GF_OPTION_RECONF ("filter-O_DIRECT", conf->filter_o_direct, - options, bool, out); + GF_OPTION_RECONF("filter-O_DIRECT", conf->filter_o_direct, options, bool, + out); - GF_OPTION_RECONF ("send-gids", conf->send_gids, options, bool, out); + GF_OPTION_RECONF("send-gids", conf->send_gids, options, bool, out); - ret = 0; + ret = 0; out: - return ret; - + return ret; } - int -init (xlator_t *this) +init(xlator_t *this) { - int ret = -1; - clnt_conf_t *conf = NULL; + int ret = -1; + clnt_conf_t *conf = NULL; - if (this->children) { - gf_msg (this->name, GF_LOG_ERROR, EINVAL, - PC_MSG_INVALID_ENTRY, "FATAL: client protocol " - "translator cannot have any subvolumes"); - goto out; - } + if (this->children) { + gf_msg(this->name, GF_LOG_ERROR, EINVAL, PC_MSG_INVALID_ENTRY, + "FATAL: client protocol " + "translator cannot have any subvolumes"); + goto out; + } - if (!this->parents) { - gf_msg (this->name, GF_LOG_WARNING, EINVAL, - PC_MSG_INVALID_ENTRY, "Volume is dangling. "); - } + if (!this->parents) { + gf_msg(this->name, GF_LOG_WARNING, EINVAL, PC_MSG_INVALID_ENTRY, + "Volume is dangling. "); + } - conf = GF_CALLOC (1, sizeof (*conf), gf_client_mt_clnt_conf_t); - if (!conf) - goto out; + conf = GF_CALLOC(1, sizeof(*conf), gf_client_mt_clnt_conf_t); + if (!conf) + goto out; - pthread_mutex_init (&conf->lock, NULL); - pthread_spin_init (&conf->fd_lock, 0); - INIT_LIST_HEAD (&conf->saved_fds); + pthread_mutex_init(&conf->lock, NULL); + pthread_spin_init(&conf->fd_lock, 0); + INIT_LIST_HEAD(&conf->saved_fds); - conf->child_up = _gf_false; + conf->child_up = _gf_false; - /* Set event threads to the configured default */ - GF_OPTION_INIT("event-threads", conf->event_threads, int32, out); - ret = client_check_event_threads (this, conf, STARTING_EVENT_THREADS, - conf->event_threads); - if (ret) - goto out; + /* Set event threads to the configured default */ + GF_OPTION_INIT("event-threads", conf->event_threads, int32, out); + ret = client_check_event_threads(this, conf, STARTING_EVENT_THREADS, + conf->event_threads); + if (ret) + goto out; - LOCK_INIT (&conf->rec_lock); + LOCK_INIT(&conf->rec_lock); - conf->last_sent_event = -1; /* To start with we don't have any events */ + conf->last_sent_event = -1; /* To start with we don't have any events */ - this->private = conf; + this->private = conf; - /* If it returns -1, then its a failure, if it returns +1 we need - have to understand that 'this' is subvolume of a xlator which, - will set the remote host and remote subvolume in a setxattr - call. - */ + /* If it returns -1, then its a failure, if it returns +1 we need + have to understand that 'this' is subvolume of a xlator which, + will set the remote host and remote subvolume in a setxattr + call. + */ - ret = build_client_config (this, conf); - if (ret == -1) - goto out; + ret = build_client_config(this, conf); + if (ret == -1) + goto out; - if (ret) { - ret = 0; - goto out; - } + if (ret) { + ret = 0; + goto out; + } - this->local_pool = mem_pool_new (clnt_local_t, 64); - if (!this->local_pool) { - ret = -1; - gf_msg (this->name, GF_LOG_ERROR, ENOMEM, PC_MSG_NO_MEMORY, - "failed to create local_t's memory pool"); - goto out; - } + this->local_pool = mem_pool_new(clnt_local_t, 64); + if (!this->local_pool) { + ret = -1; + gf_msg(this->name, GF_LOG_ERROR, ENOMEM, PC_MSG_NO_MEMORY, + "failed to create local_t's memory pool"); + goto out; + } - ret = client_init_rpc (this); + ret = client_init_rpc(this); out: - if (ret) - this->fini (this); + if (ret) + this->fini(this); - return ret; + return ret; } void -fini (xlator_t *this) +fini(xlator_t *this) { - clnt_conf_t *conf = NULL; + clnt_conf_t *conf = NULL; - conf = this->private; - if (!conf) - return; + conf = this->private; + if (!conf) + return; - conf->destroy = 1; - if (conf->rpc) { - /* cleanup the saved-frames before last unref */ - rpc_clnt_connection_cleanup (&conf->rpc->conn); - rpc_clnt_unref (conf->rpc); - } + conf->destroy = 1; + if (conf->rpc) { + /* cleanup the saved-frames before last unref */ + rpc_clnt_connection_cleanup(&conf->rpc->conn); + rpc_clnt_unref(conf->rpc); + } - /* Saved Fds */ - /* TODO: */ + /* Saved Fds */ + /* TODO: */ - return; + return; } static void -client_fd_lk_ctx_dump (xlator_t *this, fd_lk_ctx_t *lk_ctx, int nth_fd) -{ - gf_boolean_t use_try_lock = _gf_true; - int ret = -1; - int lock_no = 0; - fd_lk_ctx_t *lk_ctx_ref = NULL; - fd_lk_ctx_node_t *plock = NULL; - char key[GF_DUMP_MAX_BUF_LEN] = {0,}; - - lk_ctx_ref = fd_lk_ctx_ref (lk_ctx); - if (!lk_ctx_ref) - return; - - ret = client_fd_lk_list_empty (lk_ctx_ref, (use_try_lock = _gf_true)); - if (ret != 0) - return; - - ret = TRY_LOCK (&lk_ctx_ref->lock); - if (ret) - return; - - gf_proc_dump_write ("------","------"); - - lock_no = 0; - list_for_each_entry (plock, &lk_ctx_ref->lk_list, next) { - snprintf (key, sizeof (key), "granted-posix-lock[%d]", - lock_no++); - gf_proc_dump_write (key, "owner = %s, cmd = %s " - "fl_type = %s, fl_start = %" - PRId64", fl_end = %"PRId64 - ", user_flock: l_type = %s, " - "l_start = %"PRId64", l_len = %"PRId64, - lkowner_utoa (&plock->user_flock.l_owner), - get_lk_cmd (plock->cmd), - get_lk_type (plock->fl_type), - plock->fl_start, plock->fl_end, - get_lk_type (plock->user_flock.l_type), - plock->user_flock.l_start, - plock->user_flock.l_len); - } - gf_proc_dump_write ("------","------"); +client_fd_lk_ctx_dump(xlator_t *this, fd_lk_ctx_t *lk_ctx, int nth_fd) +{ + gf_boolean_t use_try_lock = _gf_true; + int ret = -1; + int lock_no = 0; + fd_lk_ctx_t *lk_ctx_ref = NULL; + fd_lk_ctx_node_t *plock = NULL; + char key[GF_DUMP_MAX_BUF_LEN] = { + 0, + }; + + lk_ctx_ref = fd_lk_ctx_ref(lk_ctx); + if (!lk_ctx_ref) + return; + + ret = client_fd_lk_list_empty(lk_ctx_ref, (use_try_lock = _gf_true)); + if (ret != 0) + return; - UNLOCK (&lk_ctx_ref->lock); - fd_lk_ctx_unref (lk_ctx_ref); + ret = TRY_LOCK(&lk_ctx_ref->lock); + if (ret) + return; + gf_proc_dump_write("------", "------"); + + lock_no = 0; + list_for_each_entry(plock, &lk_ctx_ref->lk_list, next) + { + snprintf(key, sizeof(key), "granted-posix-lock[%d]", lock_no++); + gf_proc_dump_write( + key, + "owner = %s, cmd = %s " + "fl_type = %s, fl_start = %" PRId64 ", fl_end = %" PRId64 + ", user_flock: l_type = %s, " + "l_start = %" PRId64 ", l_len = %" PRId64, + lkowner_utoa(&plock->user_flock.l_owner), get_lk_cmd(plock->cmd), + get_lk_type(plock->fl_type), plock->fl_start, plock->fl_end, + get_lk_type(plock->user_flock.l_type), plock->user_flock.l_start, + plock->user_flock.l_len); + } + gf_proc_dump_write("------", "------"); + + UNLOCK(&lk_ctx_ref->lock); + fd_lk_ctx_unref(lk_ctx_ref); } int -client_priv_dump (xlator_t *this) -{ - clnt_conf_t *conf = NULL; - int ret = -1; - clnt_fd_ctx_t *tmp = NULL; - int i = 0; - char key[GF_DUMP_MAX_BUF_LEN]; - char key_prefix[GF_DUMP_MAX_BUF_LEN]; - rpc_clnt_connection_t *conn = NULL; - - if (!this) - return -1; - - conf = this->private; - if (!conf) - return -1; - - ret = pthread_mutex_trylock(&conf->lock); - if (ret) - return -1; - - gf_proc_dump_build_key(key_prefix, "xlator.protocol.client", - "%s.priv", this->name); - - gf_proc_dump_add_section(key_prefix); - - pthread_spin_lock (&conf->fd_lock); - list_for_each_entry(tmp, &conf->saved_fds, sfd_pos) { - sprintf (key, "fd.%d.remote_fd", i); - gf_proc_dump_write(key, "%d", tmp->remote_fd); - client_fd_lk_ctx_dump (this, tmp->lk_ctx, i); - i++; - } - pthread_spin_unlock (&conf->fd_lock); - - gf_proc_dump_write ("connected", "%d", conf->connected); - - if (conf->rpc) { - conn = &conf->rpc->conn; - gf_proc_dump_write("total_bytes_read", "%"PRIu64, - conn->trans->total_bytes_read); - gf_proc_dump_write("ping_timeout", "%"PRIu32, - conn->ping_timeout); - gf_proc_dump_write("total_bytes_written", "%"PRIu64, - conn->trans->total_bytes_write); - gf_proc_dump_write("ping_msgs_sent", "%"PRIu64, - conn->pingcnt); - gf_proc_dump_write("msgs_sent", "%"PRIu64, - conn->msgcnt); - } - pthread_mutex_unlock(&conf->lock); - - return 0; - +client_priv_dump(xlator_t *this) +{ + clnt_conf_t *conf = NULL; + int ret = -1; + clnt_fd_ctx_t *tmp = NULL; + int i = 0; + char key[GF_DUMP_MAX_BUF_LEN]; + char key_prefix[GF_DUMP_MAX_BUF_LEN]; + rpc_clnt_connection_t *conn = NULL; + + if (!this) + return -1; + + conf = this->private; + if (!conf) + return -1; + + ret = pthread_mutex_trylock(&conf->lock); + if (ret) + return -1; + + gf_proc_dump_build_key(key_prefix, "xlator.protocol.client", "%s.priv", + this->name); + + gf_proc_dump_add_section(key_prefix); + + pthread_spin_lock(&conf->fd_lock); + list_for_each_entry(tmp, &conf->saved_fds, sfd_pos) + { + sprintf(key, "fd.%d.remote_fd", i); + gf_proc_dump_write(key, "%d", tmp->remote_fd); + client_fd_lk_ctx_dump(this, tmp->lk_ctx, i); + i++; + } + pthread_spin_unlock(&conf->fd_lock); + + gf_proc_dump_write("connected", "%d", conf->connected); + + if (conf->rpc) { + conn = &conf->rpc->conn; + gf_proc_dump_write("total_bytes_read", "%" PRIu64, + conn->trans->total_bytes_read); + gf_proc_dump_write("ping_timeout", "%" PRIu32, conn->ping_timeout); + gf_proc_dump_write("total_bytes_written", "%" PRIu64, + conn->trans->total_bytes_write); + gf_proc_dump_write("ping_msgs_sent", "%" PRIu64, conn->pingcnt); + gf_proc_dump_write("msgs_sent", "%" PRIu64, conn->msgcnt); + } + pthread_mutex_unlock(&conf->lock); + + return 0; } int32_t -client_inodectx_dump (xlator_t *this, inode_t *inode) +client_inodectx_dump(xlator_t *this, inode_t *inode) { - if (!inode) - return -1; + if (!inode) + return -1; - if (!this) - return -1; + if (!this) + return -1; - /*TODO*/ + /*TODO*/ - return 0; + return 0; } - - - -struct xlator_cbks cbks = { - .forget = client_forget, - .release = client_release, - .releasedir = client_releasedir -}; +struct xlator_cbks cbks = {.forget = client_forget, + .release = client_release, + .releasedir = client_releasedir}; struct xlator_fops fops = { - .stat = client_stat, - .readlink = client_readlink, - .mknod = client_mknod, - .mkdir = client_mkdir, - .unlink = client_unlink, - .rmdir = client_rmdir, - .symlink = client_symlink, - .rename = client_rename, - .link = client_link, - .truncate = client_truncate, - .open = client_open, - .readv = client_readv, - .writev = client_writev, - .statfs = client_statfs, - .flush = client_flush, - .fsync = client_fsync, - .setxattr = client_setxattr, - .getxattr = client_getxattr, - .fsetxattr = client_fsetxattr, - .fgetxattr = client_fgetxattr, - .removexattr = client_removexattr, - .fremovexattr = client_fremovexattr, - .opendir = client_opendir, - .readdir = client_readdir, - .readdirp = client_readdirp, - .fsyncdir = client_fsyncdir, - .access = client_access, - .ftruncate = client_ftruncate, - .fstat = client_fstat, - .create = client_create, - .lk = client_lk, - .inodelk = client_inodelk, - .finodelk = client_finodelk, - .entrylk = client_entrylk, - .fentrylk = client_fentrylk, - .lookup = client_lookup, - .rchecksum = client_rchecksum, - .xattrop = client_xattrop, - .fxattrop = client_fxattrop, - .setattr = client_setattr, - .fsetattr = client_fsetattr, - .fallocate = client_fallocate, - .discard = client_discard, - .zerofill = client_zerofill, - .getspec = client_getspec, - .ipc = client_ipc, - .seek = client_seek, - .lease = client_lease, - .compound = client_compound, - .getactivelk = client_getactivelk, - .setactivelk = client_setactivelk, - .icreate = client_icreate, - .namelink = client_namelink, - .put = client_put, + .stat = client_stat, + .readlink = client_readlink, + .mknod = client_mknod, + .mkdir = client_mkdir, + .unlink = client_unlink, + .rmdir = client_rmdir, + .symlink = client_symlink, + .rename = client_rename, + .link = client_link, + .truncate = client_truncate, + .open = client_open, + .readv = client_readv, + .writev = client_writev, + .statfs = client_statfs, + .flush = client_flush, + .fsync = client_fsync, + .setxattr = client_setxattr, + .getxattr = client_getxattr, + .fsetxattr = client_fsetxattr, + .fgetxattr = client_fgetxattr, + .removexattr = client_removexattr, + .fremovexattr = client_fremovexattr, + .opendir = client_opendir, + .readdir = client_readdir, + .readdirp = client_readdirp, + .fsyncdir = client_fsyncdir, + .access = client_access, + .ftruncate = client_ftruncate, + .fstat = client_fstat, + .create = client_create, + .lk = client_lk, + .inodelk = client_inodelk, + .finodelk = client_finodelk, + .entrylk = client_entrylk, + .fentrylk = client_fentrylk, + .lookup = client_lookup, + .rchecksum = client_rchecksum, + .xattrop = client_xattrop, + .fxattrop = client_fxattrop, + .setattr = client_setattr, + .fsetattr = client_fsetattr, + .fallocate = client_fallocate, + .discard = client_discard, + .zerofill = client_zerofill, + .getspec = client_getspec, + .ipc = client_ipc, + .seek = client_seek, + .lease = client_lease, + .compound = client_compound, + .getactivelk = client_getactivelk, + .setactivelk = client_setactivelk, + .icreate = client_icreate, + .namelink = client_namelink, + .put = client_put, }; - struct xlator_dumpops dumpops = { - .priv = client_priv_dump, - .inodectx = client_inodectx_dump, + .priv = client_priv_dump, + .inodectx = client_inodectx_dump, }; - struct volume_options options[] = { - { .key = {"username"}, - .type = GF_OPTION_TYPE_ANY - }, - { .key = {"password"}, - .type = GF_OPTION_TYPE_ANY - }, - { .key = {"transport-type"}, - .value = {"tcp", "socket", "ib-verbs", "unix", "ib-sdp", - "tcp/client", "ib-verbs/client", "rdma"}, - .type = GF_OPTION_TYPE_STR, - .default_value = "tcp", - }, - { .key = {"remote-host"}, - .type = GF_OPTION_TYPE_INTERNET_ADDRESS, - .default_value = "{{ brick.hostname }}" - }, - { .key = {"remote-port"}, - .type = GF_OPTION_TYPE_INT, - }, - { .key = {"remote-subvolume"}, - .type = GF_OPTION_TYPE_ANY, - .default_value = "{{ brick.path }}" - }, - { .key = {"frame-timeout", - "rpc-timeout" }, - .type = GF_OPTION_TYPE_TIME, - .min = 0, - .max = 86400, - .default_value = "1800", - .description = "Time frame after which the (file) operation would be " - "declared as dead, if the server does not respond for " - "a particular (file) operation.", - .op_version = {1}, - .flags = OPT_FLAG_SETTABLE | OPT_FLAG_DOC - }, - { .key = {"ping-timeout"}, - .type = GF_OPTION_TYPE_TIME, - .min = 0, - .max = 1013, - .default_value = "42", - .description = "Time duration for which the client waits to " - "check if the server is responsive.", - .op_version = {1}, - .flags = OPT_FLAG_SETTABLE | OPT_FLAG_DOC - }, - { .key = {"client-bind-insecure"}, - .type = GF_OPTION_TYPE_BOOL - }, - { .key = {"tcp-window-size"}, - .type = GF_OPTION_TYPE_SIZET, - .min = GF_MIN_SOCKET_WINDOW_SIZE, - .max = GF_MAX_SOCKET_WINDOW_SIZE, - .description = "Specifies the window size for tcp socket.", - .op_version = {1}, - .flags = OPT_FLAG_SETTABLE | OPT_FLAG_DOC - }, - { .key = {"filter-O_DIRECT"}, - .type = GF_OPTION_TYPE_BOOL, - .default_value = "disable", - .description = "If enabled, in open/creat/readv/writev fops, " - "O_DIRECT flag will be filtered at the client protocol level so " - "server will still continue to cache the file. This works similar to " - "NFS's behavior of O_DIRECT. Anon-fds can choose to readv/writev " - "using O_DIRECT", - .op_version = {2}, - .flags = OPT_FLAG_SETTABLE | OPT_FLAG_DOC - }, - { .key = {"send-gids"}, - .type = GF_OPTION_TYPE_BOOL, - .default_value = "on", - .op_version = {GD_OP_VERSION_3_6_0}, - .flags = OPT_FLAG_SETTABLE - }, - { .key = {"event-threads"}, - .type = GF_OPTION_TYPE_INT, - .min = 1, - .max = 32, - .default_value = "2", - .description = "Specifies the number of event threads to execute " - "in parallel. Larger values would help process" - " responses faster, depending on available processing" - " power. Range 1-32 threads.", - .op_version = {GD_OP_VERSION_3_7_0}, - .flags = OPT_FLAG_SETTABLE | OPT_FLAG_DOC - }, - { .key = {NULL} }, + {.key = {"username"}, .type = GF_OPTION_TYPE_ANY}, + {.key = {"password"}, .type = GF_OPTION_TYPE_ANY}, + { + .key = {"transport-type"}, + .value = {"tcp", "socket", "ib-verbs", "unix", "ib-sdp", "tcp/client", + "ib-verbs/client", "rdma"}, + .type = GF_OPTION_TYPE_STR, + .default_value = "tcp", + }, + {.key = {"remote-host"}, + .type = GF_OPTION_TYPE_INTERNET_ADDRESS, + .default_value = "{{ brick.hostname }}"}, + { + .key = {"remote-port"}, + .type = GF_OPTION_TYPE_INT, + }, + {.key = {"remote-subvolume"}, + .type = GF_OPTION_TYPE_ANY, + .default_value = "{{ brick.path }}"}, + {.key = {"frame-timeout", "rpc-timeout"}, + .type = GF_OPTION_TYPE_TIME, + .min = 0, + .max = 86400, + .default_value = "1800", + .description = "Time frame after which the (file) operation would be " + "declared as dead, if the server does not respond for " + "a particular (file) operation.", + .op_version = {1}, + .flags = OPT_FLAG_SETTABLE | OPT_FLAG_DOC}, + {.key = {"ping-timeout"}, + .type = GF_OPTION_TYPE_TIME, + .min = 0, + .max = 1013, + .default_value = "42", + .description = "Time duration for which the client waits to " + "check if the server is responsive.", + .op_version = {1}, + .flags = OPT_FLAG_SETTABLE | OPT_FLAG_DOC}, + {.key = {"client-bind-insecure"}, .type = GF_OPTION_TYPE_BOOL}, + {.key = {"tcp-window-size"}, + .type = GF_OPTION_TYPE_SIZET, + .min = GF_MIN_SOCKET_WINDOW_SIZE, + .max = GF_MAX_SOCKET_WINDOW_SIZE, + .description = "Specifies the window size for tcp socket.", + .op_version = {1}, + .flags = OPT_FLAG_SETTABLE | OPT_FLAG_DOC}, + {.key = {"filter-O_DIRECT"}, + .type = GF_OPTION_TYPE_BOOL, + .default_value = "disable", + .description = + "If enabled, in open/creat/readv/writev fops, " + "O_DIRECT flag will be filtered at the client protocol level so " + "server will still continue to cache the file. This works similar to " + "NFS's behavior of O_DIRECT. Anon-fds can choose to readv/writev " + "using O_DIRECT", + .op_version = {2}, + .flags = OPT_FLAG_SETTABLE | OPT_FLAG_DOC}, + {.key = {"send-gids"}, + .type = GF_OPTION_TYPE_BOOL, + .default_value = "on", + .op_version = {GD_OP_VERSION_3_6_0}, + .flags = OPT_FLAG_SETTABLE}, + {.key = {"event-threads"}, + .type = GF_OPTION_TYPE_INT, + .min = 1, + .max = 32, + .default_value = "2", + .description = "Specifies the number of event threads to execute " + "in parallel. Larger values would help process" + " responses faster, depending on available processing" + " power. Range 1-32 threads.", + .op_version = {GD_OP_VERSION_3_7_0}, + .flags = OPT_FLAG_SETTABLE | OPT_FLAG_DOC}, + {.key = {NULL}}, }; - |