summaryrefslogtreecommitdiffstats
path: root/transport/socket
diff options
context:
space:
mode:
Diffstat (limited to 'transport/socket')
-rw-r--r--transport/socket/src/socket-mem-types.h36
-rw-r--r--transport/socket/src/socket.c38
-rw-r--r--transport/socket/src/socket.h1
3 files changed, 67 insertions, 8 deletions
diff --git a/transport/socket/src/socket-mem-types.h b/transport/socket/src/socket-mem-types.h
new file mode 100644
index 00000000000..f50f4a75de8
--- /dev/null
+++ b/transport/socket/src/socket-mem-types.h
@@ -0,0 +1,36 @@
+
+/*
+ Copyright (c) 2008-2009 Gluster, Inc. <http://www.gluster.com>
+ This file is part of GlusterFS.
+
+ GlusterFS is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published
+ by the Free Software Foundation; either version 3 of the License,
+ or (at your option) any later version.
+
+ GlusterFS is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see
+ <http://www.gnu.org/licenses/>.
+*/
+
+
+#ifndef __SOCKET_MEM_TYPES_H__
+#define __SOCKET_MEM_TYPES_H__
+
+#include "mem-types.h"
+
+enum gf_socket_mem_types_ {
+ gf_socket_mt_socket_private_t = gf_common_mt_end + 1,
+ gf_socket_mt_ioq,
+ gf_socket_mt_transport_t,
+ gf_socket_mt_socket_local_t,
+ gf_socket_mt_char,
+ gf_socket_mt_end
+};
+#endif
+
diff --git a/transport/socket/src/socket.c b/transport/socket/src/socket.c
index 28b828f29a2..7f7f8093a7d 100644
--- a/transport/socket/src/socket.c
+++ b/transport/socket/src/socket.c
@@ -273,7 +273,7 @@ __socket_reset (transport_t *this)
/* TODO: use mem-pool on incoming data */
if (priv->incoming.hdr_p)
- free (priv->incoming.hdr_p);
+ GF_FREE (priv->incoming.hdr_p);
if (priv->incoming.iobuf)
iobuf_unref (priv->incoming.iobuf);
@@ -298,7 +298,8 @@ __socket_ioq_new (transport_t *this, char *buf, int len,
priv = this->private;
/* TODO: use mem-pool */
- entry = CALLOC (1, sizeof (*entry));
+ entry = GF_CALLOC (1, sizeof (*entry),
+ gf_common_mt_ioq);
if (!entry)
return NULL;
@@ -346,10 +347,10 @@ __socket_ioq_entry_free (struct ioq *entry)
iobref_unref (entry->iobref);
/* TODO: use mem-pool */
- free (entry->buf);
+ GF_FREE (entry->buf);
/* TODO: use mem-pool */
- free (entry);
+ GF_FREE (entry);
}
@@ -607,7 +608,8 @@ __socket_proto_state_machine (transport_t *this)
priv->incoming.buflen = size2;
/* TODO: use mem-pool */
- priv->incoming.hdr_p = MALLOC (size1);
+ priv->incoming.hdr_p = GF_MALLOC (size1,
+ gf_common_mt_char);
if (size2) {
/* TODO: sanity check size2 < page size
*/
@@ -891,7 +893,8 @@ socket_server_event_handler (int fd, int idx, void *data,
}
}
- new_trans = CALLOC (1, sizeof (*new_trans));
+ new_trans = GF_CALLOC (1, sizeof (*new_trans),
+ gf_common_mt_transport_t);
new_trans->xl = this->xl;
new_trans->fini = this->fini;
@@ -1376,7 +1379,8 @@ socket_init (transport_t *this)
return -1;
}
- priv = CALLOC (1, sizeof (*priv));
+ priv = GF_CALLOC (1, sizeof (*priv),
+ gf_common_mt_socket_private_t);
if (!priv) {
gf_log (this->xl->name, GF_LOG_ERROR,
"calloc (1, %"GF_PRI_SIZET") returned NULL",
@@ -1465,9 +1469,27 @@ fini (transport_t *this)
"transport %p destroyed", this);
pthread_mutex_destroy (&priv->lock);
- FREE (priv);
+ GF_FREE (priv);
}
+int32_t
+mem_acct_init (xlator_t *this)
+{
+ int ret = -1;
+
+ if (!this)
+ return ret;
+
+ ret = xlator_mem_acct_init (this, gf_common_mt_end + 1);
+
+ if (ret != 0) {
+ gf_log (this->name, GF_LOG_ERROR, "Memory accounting init"
+ "failed");
+ return ret;
+ }
+
+ return ret;
+}
int32_t
init (transport_t *this)
diff --git a/transport/socket/src/socket.h b/transport/socket/src/socket.h
index 44715697db1..bc6d3b27c3a 100644
--- a/transport/socket/src/socket.h
+++ b/transport/socket/src/socket.h
@@ -31,6 +31,7 @@
#include "logging.h"
#include "dict.h"
#include "mem-pool.h"
+#include "socket-mem-types.h"
#ifndef MAX_IOVEC
#define MAX_IOVEC 16