summaryrefslogtreecommitdiffstats
path: root/rpc/rpc-lib/src
diff options
context:
space:
mode:
Diffstat (limited to 'rpc/rpc-lib/src')
-rw-r--r--rpc/rpc-lib/src/rpcsvc.c10
-rw-r--r--rpc/rpc-lib/src/rpcsvc.h3
2 files changed, 9 insertions, 4 deletions
diff --git a/rpc/rpc-lib/src/rpcsvc.c b/rpc/rpc-lib/src/rpcsvc.c
index d62abde47c5..ffc6b763590 100644
--- a/rpc/rpc-lib/src/rpcsvc.c
+++ b/rpc/rpc-lib/src/rpcsvc.c
@@ -1995,7 +1995,8 @@ rpcsvc_request_handler (void *arg)
}
int
-rpcsvc_program_register (rpcsvc_t *svc, rpcsvc_program_t *program)
+rpcsvc_program_register (rpcsvc_t *svc, rpcsvc_program_t *program,
+ gf_boolean_t add_to_head)
{
int ret = -1;
rpcsvc_program_t *newprog = NULL;
@@ -2052,7 +2053,10 @@ rpcsvc_program_register (rpcsvc_t *svc, rpcsvc_program_t *program)
pthread_rwlock_wrlock (&svc->rpclock);
{
- list_add_tail (&newprog->program, &svc->programs);
+ if (add_to_head)
+ list_add (&newprog->program, &svc->programs);
+ else
+ list_add_tail (&newprog->program, &svc->programs);
}
pthread_rwlock_unlock (&svc->rpclock);
@@ -2513,7 +2517,7 @@ rpcsvc_init (xlator_t *xl, glusterfs_ctx_t *ctx, dict_t *options,
gluster_dump_prog.options = options;
- ret = rpcsvc_program_register (svc, &gluster_dump_prog);
+ ret = rpcsvc_program_register (svc, &gluster_dump_prog, _gf_false);
if (ret) {
gf_log (GF_RPCSVC, GF_LOG_ERROR,
"failed to register DUMP program");
diff --git a/rpc/rpc-lib/src/rpcsvc.h b/rpc/rpc-lib/src/rpcsvc.h
index 37244be5361..1fdbc69c7ad 100644
--- a/rpc/rpc-lib/src/rpcsvc.h
+++ b/rpc/rpc-lib/src/rpcsvc.h
@@ -423,7 +423,8 @@ typedef struct rpcsvc_cbk_program {
* procedure handlers.
*/
extern int
-rpcsvc_program_register (rpcsvc_t *svc, rpcsvc_program_t *program);
+rpcsvc_program_register (rpcsvc_t *svc, rpcsvc_program_t *program,
+ gf_boolean_t add_to_head);
extern int
rpcsvc_program_unregister (rpcsvc_t *svc, rpcsvc_program_t *program);