diff options
Diffstat (limited to 'rpc/rpc-lib/src')
| -rw-r--r-- | rpc/rpc-lib/src/rpcsvc.c | 10 | ||||
| -rw-r--r-- | rpc/rpc-lib/src/rpcsvc.h | 3 | 
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);  | 
