summaryrefslogtreecommitdiffstats
path: root/xlators/protocol/server/src/server-helpers.c
diff options
context:
space:
mode:
authorHarshavardhana Ranganath <harsha@gluster.com>2010-01-26 09:06:18 +0000
committerAnand V. Avati <avati@dev.gluster.com>2010-01-26 07:23:16 -0800
commit5a574d96c392b19a92bb925b4b4dd268393831ea (patch)
treea3452c04ebaee4770f2fdfdc85beb6c1c043ef63 /xlators/protocol/server/src/server-helpers.c
parentffc36da0fd9a925aa2a23026b9244787d2c0a5fd (diff)
Revert "Server backend storage hang should not cause the mount point to hang."
This reverts commit a0b148ea4e2a0163548eeb89b7580be4adbb8070. Signed-off-by: Harshavardhana <harsha@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 272 (Server backend storage hang should not cause the mount point to hang) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=272
Diffstat (limited to 'xlators/protocol/server/src/server-helpers.c')
-rw-r--r--xlators/protocol/server/src/server-helpers.c126
1 files changed, 10 insertions, 116 deletions
diff --git a/xlators/protocol/server/src/server-helpers.c b/xlators/protocol/server/src/server-helpers.c
index a336406b17e..f627b6b530e 100644
--- a/xlators/protocol/server/src/server-helpers.c
+++ b/xlators/protocol/server/src/server-helpers.c
@@ -645,14 +645,13 @@ out:
int
-server_connection_cleanup (xlator_t *this, server_connection_t *conn, transport_t *trans)
+server_connection_cleanup (xlator_t *this, server_connection_t *conn)
{
char do_cleanup = 0;
struct _lock_table *ltable = NULL;
fdentry_t *fdentries = NULL;
uint32_t fd_count = 0;
- int ret = 0;
- int i = 0;
+ int ret = 0;
if (conn == NULL) {
goto out;
@@ -660,12 +659,6 @@ server_connection_cleanup (xlator_t *this, server_connection_t *conn, transport_
pthread_mutex_lock (&conn->lock);
{
- for (i = 0; i < TRANSPORTS_PER_SERVER_CONN; i++) {
- if (conn->transports[i] == trans) {
- conn->transports[i] = NULL;
- transport_unref (trans);
- }
- }
conn->active_transports--;
if (conn->active_transports == 0) {
if (conn->ltable) {
@@ -857,12 +850,11 @@ out:
server_connection_t *
-server_connection_get (xlator_t *this, const char *id, transport_t *trans)
+server_connection_get (xlator_t *this, const char *id)
{
- server_connection_t *conn = NULL;
- server_connection_t *trav = NULL;
- server_conf_t *conf = NULL;
- int i = 0;
+ server_connection_t *conn = NULL;
+ server_connection_t *trav = NULL;
+ server_conf_t *conf = NULL;
conf = this->private;
@@ -884,33 +876,13 @@ server_connection_get (xlator_t *this, const char *id, transport_t *trans)
pthread_mutex_init (&conn->lock, NULL);
- list_add (&conn->list, &conf->conns);
- }
- if (conn->active_transports == TRANSPORTS_PER_SERVER_CONN) {
- gf_log (this->name, GF_LOG_DEBUG,
- "Maximum number of connections allowed is %d",
- TRANSPORTS_PER_SERVER_CONN);
- goto unlock;
- }
-
- for (i = 0; i < TRANSPORTS_PER_SERVER_CONN; i++) {
- if (!conn->transports[i])
- break;
- }
-
- if (i == TRANSPORTS_PER_SERVER_CONN) {
- gf_log (this->name, GF_LOG_DEBUG,
- "Could not find a vacant slot");
- goto unlock;
- }
-
- conn->transports[i] = transport_ref (trans);
+ list_add (&conn->list, &conf->conns);
+ }
conn->ref++;
conn->active_transports++;
- }
-unlock:
- pthread_mutex_unlock (&conf->mutex);
+ }
+ pthread_mutex_unlock (&conf->mutex);
return conn;
}
@@ -946,81 +918,3 @@ server_connection_put (xlator_t *this, server_connection_t *conn)
out:
return;
}
-
-void
-server_child_down (xlator_t *this, xlator_t *bound_xl)
-{
- server_conf_t *conf = NULL;
- server_connection_t *trav = NULL;
- transport_t *trans = NULL;
- int subvol_idx = 0;
- int i = 0;
- xlator_list_t *xltrav = NULL;
-
- conf = this->private;
-
- if (conf == NULL)
- return;
-
- xltrav = this->children;
-
- while (xltrav) {
- if (xltrav->xlator == bound_xl)
- break;
- xltrav = xltrav->next;
- subvol_idx++;
- }
- gf_log (this->name, GF_LOG_DEBUG,
- "subvolume %s(%d) went down", bound_xl->name, subvol_idx);
-
- conf->subvol_list[subvol_idx] = 0;
-
- pthread_mutex_lock (&conf->mutex);
- {
- list_for_each_entry (trav, &conf->conns, list) {
- if (bound_xl == trav->bound_xl) {
- gf_log (this->name, GF_LOG_DEBUG,
- "disonnecting conn=%p", trav);
- for (i = 0; i < TRANSPORTS_PER_SERVER_CONN; i++)
- {
- trans = trav->transports[i];
- if (trans == NULL)
- continue;
- gf_log (this->name, GF_LOG_DEBUG,
- "disconnecting %p(%d)",
- trans, i);
- transport_disconnect (trans);
- }
- }
- }
- }
- pthread_mutex_unlock (&conf->mutex);
-}
-
-void
-server_child_up (xlator_t *this, xlator_t *bound_xl)
-{
- server_conf_t *conf = NULL;
- int subvol_idx = 0;
- xlator_list_t *xltrav = NULL;
-
- conf = this->private;
-
- if (conf == NULL)
- return;
-
- xltrav = this->children;
-
- while (xltrav) {
- if (bound_xl == xltrav->xlator) {
- break;
- }
- subvol_idx++;
- xltrav = xltrav->next;
- }
-
- gf_log (this->name, GF_LOG_DEBUG,
- "subvolume %s(%d) came up", bound_xl->name, subvol_idx);
-
- conf->subvol_list[subvol_idx] = 1;
-}