.release = ceph_socket_destroy,
};
- struct ceph_socket *ceph_socket_create()
+ static struct ceph_socket *ceph_socket_create(void)
{
struct ceph_socket *s;
- int err;
-
+ int err = -ENOMEM;
+
s = kzalloc(sizeof(*s), GFP_NOFS);
- if (!s) {
- derr(10, "ENOMEM creating ceph_socket\n");
- return ERR_PTR(-ENOMEM);
- }
+ if (!s)
+ goto out;
err = sock_create_kern(AF_INET, SOCK_STREAM, IPPROTO_TCP, &s->sock);
- if (err) {
- derr(10, "sock_create_kern error %d\n", err);
- return ERR_PTR(err);
- }
+ if (err)
+ goto out_free;
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,25)
- kobject_init_and_add(&s->kobj, &ceph_socket_type,
- ceph_sockets_kobj,
- "socket %p", s);
+ err = kobject_init_and_add(&s->kobj, &ceph_socket_type,
+ ceph_sockets_kobj,
+ "socket %p", s);
+ if (err)
+ goto out_release;
#else
kobject_init(&s->kobj);
kobject_set_name(&s->kobj, "socket %p", s);
int ceph_workqueue_init(void);
void ceph_workqueue_shutdown(void);
- extern struct ceph_socket *ceph_socket_create(void);
extern void ceph_socket_get(struct ceph_socket *s);
-extern void ceph_socket_put(struct ceph_socket *s, int die);
+extern void ceph_socket_put(struct ceph_socket *s);
/* Max number of outstanding connections in listener queueu */
#define NUM_BACKUP 10