diff options
| -rw-r--r-- | glusterfsd/src/glusterfsd-mgmt.c | 2 | ||||
| -rw-r--r-- | rpc/rpc-lib/src/rpcsvc.c | 10 | ||||
| -rw-r--r-- | rpc/rpc-lib/src/rpcsvc.h | 3 | ||||
| -rw-r--r-- | xlators/features/changelog/src/changelog-rpc-common.c | 2 | ||||
| -rw-r--r-- | xlators/features/quota/src/quotad-aggregator.c | 3 | ||||
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd.c | 2 | ||||
| -rw-r--r-- | xlators/nfs/server/src/nfs.c | 4 | ||||
| -rw-r--r-- | xlators/protocol/server/src/server.c | 9 | 
8 files changed, 23 insertions, 12 deletions
diff --git a/glusterfsd/src/glusterfsd-mgmt.c b/glusterfsd/src/glusterfsd-mgmt.c index 46d4e918bc6..415c26d68d0 100644 --- a/glusterfsd/src/glusterfsd-mgmt.c +++ b/glusterfsd/src/glusterfsd-mgmt.c @@ -2344,7 +2344,7 @@ glusterfs_listener_init (glusterfs_ctx_t *ctx)                  goto out;          } -        ret = rpcsvc_program_register (rpc, &glusterfs_mop_prog); +        ret = rpcsvc_program_register (rpc, &glusterfs_mop_prog, _gf_false);          if (ret) {                  goto out;          } 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); diff --git a/xlators/features/changelog/src/changelog-rpc-common.c b/xlators/features/changelog/src/changelog-rpc-common.c index 08cd41e4f17..7bd5b688fa5 100644 --- a/xlators/features/changelog/src/changelog-rpc-common.c +++ b/xlators/features/changelog/src/changelog-rpc-common.c @@ -324,7 +324,7 @@ changelog_rpc_server_init (xlator_t *this, char *sockfile, void *cbkdata,          while (*progs) {                  prog = *progs; -                ret = rpcsvc_program_register (rpc, prog); +                ret = rpcsvc_program_register (rpc, prog, _gf_false);                  if (ret) {                          gf_msg (this->name, GF_LOG_ERROR, 0,                                  CHANGELOG_MSG_PROGRAM_NAME_REG_FAILED, diff --git a/xlators/features/quota/src/quotad-aggregator.c b/xlators/features/quota/src/quotad-aggregator.c index 428153fa2bd..c27b67136a3 100644 --- a/xlators/features/quota/src/quotad-aggregator.c +++ b/xlators/features/quota/src/quotad-aggregator.c @@ -416,7 +416,8 @@ quotad_aggregator_init (xlator_t *this)          priv->quotad_aggregator = "ad_aggregator_prog;          quotad_aggregator_prog.options = this->options; -        ret = rpcsvc_program_register (priv->rpcsvc, "ad_aggregator_prog); +        ret = rpcsvc_program_register (priv->rpcsvc, "ad_aggregator_prog, +                                       _gf_false);          if (ret) {                  gf_msg (this->name, GF_LOG_WARNING, 0,                          Q_MSG_RPCSVC_REGISTER_FAILED, diff --git a/xlators/mgmt/glusterd/src/glusterd.c b/xlators/mgmt/glusterd/src/glusterd.c index 85ae51ba9fc..f380583701c 100644 --- a/xlators/mgmt/glusterd/src/glusterd.c +++ b/xlators/mgmt/glusterd/src/glusterd.c @@ -444,7 +444,7 @@ glusterd_program_register (xlator_t *this, rpcsvc_t *svc,  {          int32_t ret = -1; -        ret = rpcsvc_program_register (svc, prog); +        ret = rpcsvc_program_register (svc, prog, _gf_false);          if (ret) {                  gf_msg_debug (this->name, 0,                          "cannot register program (name: %s, prognum:%d, " diff --git a/xlators/nfs/server/src/nfs.c b/xlators/nfs/server/src/nfs.c index daa8366f19a..1f637fd6091 100644 --- a/xlators/nfs/server/src/nfs.c +++ b/xlators/nfs/server/src/nfs.c @@ -98,7 +98,7 @@ nfs_init_version (xlator_t *this, nfs_version_initer_t init,          gf_msg_debug (GF_NFS, 0, "Starting program: %s", prog->progname); -        ret = rpcsvc_program_register (nfs->rpcsvc, prog); +        ret = rpcsvc_program_register (nfs->rpcsvc, prog, _gf_false);          if (ret == -1) {                  gf_msg (GF_NFS, GF_LOG_ERROR, 0, NFS_MSG_PGM_INIT_FAIL,                          "Program: %s init failed", prog->progname); @@ -321,7 +321,7 @@ nfs_init_versions (struct nfs_state *nfs, xlator_t *this)                  gf_msg_debug (GF_NFS, 0, "Starting program: %s",                          prog->progname); -                ret = rpcsvc_program_register (nfs->rpcsvc, prog); +                ret = rpcsvc_program_register (nfs->rpcsvc, prog, _gf_false);                  if (ret == -1) {                          gf_msg (GF_NFS, GF_LOG_ERROR, 0,                                  NFS_MSG_PGM_INIT_FAIL, diff --git a/xlators/protocol/server/src/server.c b/xlators/protocol/server/src/server.c index 344046aabec..b408c10b0a0 100644 --- a/xlators/protocol/server/src/server.c +++ b/xlators/protocol/server/src/server.c @@ -1187,7 +1187,11 @@ init (xlator_t *this)          }          glusterfs3_3_fop_prog.options = this->options; -        ret = rpcsvc_program_register (conf->rpc, &glusterfs3_3_fop_prog); +        /* make sure we register the fop prgram at the head to optimize +         * lookup +         */ +        ret = rpcsvc_program_register (conf->rpc, &glusterfs3_3_fop_prog, +                                       _gf_true);          if (ret) {                  gf_msg (this->name, GF_LOG_WARNING, 0, PS_MSG_PGM_REG_FAILED,                          "registration of program (name:%s, prognum:%d, " @@ -1198,7 +1202,8 @@ init (xlator_t *this)          }          gluster_handshake_prog.options = this->options; -        ret = rpcsvc_program_register (conf->rpc, &gluster_handshake_prog); +        ret = rpcsvc_program_register (conf->rpc, &gluster_handshake_prog, +                                       _gf_false);          if (ret) {                  gf_msg (this->name, GF_LOG_WARNING, 0, PS_MSG_PGM_REG_FAILED,                          "registration of program (name:%s, prognum:%d, "  | 
