]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
libceph: move and add dout()s to ceph_msg_{get,put}()
authorIlya Dryomov <ilya.dryomov@inktank.com>
Fri, 20 Jun 2014 10:14:41 +0000 (14:14 +0400)
committerIlya Dryomov <ilya.dryomov@inktank.com>
Tue, 8 Jul 2014 11:08:43 +0000 (15:08 +0400)
Add dout()s to ceph_msg_{get,put}().  Also move them to .c and turn
kref release callback into a static function.

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
Reviewed-by: Alex Elder <elder@linaro.org>
include/linux/ceph/messenger.h
net/ceph/messenger.c

index d21f2dba07314c48dce2414c4be23d2191180c81..40ae58e3e9db67d5adbfac4c6207ee4af8b1bebc 100644 (file)
@@ -285,19 +285,9 @@ extern void ceph_msg_data_add_bio(struct ceph_msg *msg, struct bio *bio,
 
 extern struct ceph_msg *ceph_msg_new(int type, int front_len, gfp_t flags,
                                     bool can_fail);
-extern void ceph_msg_kfree(struct ceph_msg *m);
 
-
-static inline struct ceph_msg *ceph_msg_get(struct ceph_msg *msg)
-{
-       kref_get(&msg->kref);
-       return msg;
-}
-extern void ceph_msg_last_put(struct kref *kref);
-static inline void ceph_msg_put(struct ceph_msg *msg)
-{
-       kref_put(&msg->kref, ceph_msg_last_put);
-}
+extern struct ceph_msg *ceph_msg_get(struct ceph_msg *msg);
+extern void ceph_msg_put(struct ceph_msg *msg);
 
 extern void ceph_msg_dump(struct ceph_msg *msg);
 
index 1948d592aa54c7a1831df546702904898cd68da4..8bffa5b90fef71b8ea29be2ea964b4d6ba6ee283 100644 (file)
@@ -3269,24 +3269,21 @@ static int ceph_con_in_msg_alloc(struct ceph_connection *con, int *skip)
 /*
  * Free a generically kmalloc'd message.
  */
-void ceph_msg_kfree(struct ceph_msg *m)
+static void ceph_msg_free(struct ceph_msg *m)
 {
-       dout("msg_kfree %p\n", m);
+       dout("%s %p\n", __func__, m);
        ceph_kvfree(m->front.iov_base);
        kmem_cache_free(ceph_msg_cache, m);
 }
 
-/*
- * Drop a msg ref.  Destroy as needed.
- */
-void ceph_msg_last_put(struct kref *kref)
+static void ceph_msg_release(struct kref *kref)
 {
        struct ceph_msg *m = container_of(kref, struct ceph_msg, kref);
        LIST_HEAD(data);
        struct list_head *links;
        struct list_head *next;
 
-       dout("ceph_msg_put last one on %p\n", m);
+       dout("%s %p\n", __func__, m);
        WARN_ON(!list_empty(&m->list_head));
 
        /* drop middle, data, if any */
@@ -3308,9 +3305,25 @@ void ceph_msg_last_put(struct kref *kref)
        if (m->pool)
                ceph_msgpool_put(m->pool, m);
        else
-               ceph_msg_kfree(m);
+               ceph_msg_free(m);
+}
+
+struct ceph_msg *ceph_msg_get(struct ceph_msg *msg)
+{
+       dout("%s %p (was %d)\n", __func__, msg,
+            atomic_read(&msg->kref.refcount));
+       kref_get(&msg->kref);
+       return msg;
+}
+EXPORT_SYMBOL(ceph_msg_get);
+
+void ceph_msg_put(struct ceph_msg *msg)
+{
+       dout("%s %p (was %d)\n", __func__, msg,
+            atomic_read(&msg->kref.refcount));
+       kref_put(&msg->kref, ceph_msg_release);
 }
-EXPORT_SYMBOL(ceph_msg_last_put);
+EXPORT_SYMBOL(ceph_msg_put);
 
 void ceph_msg_dump(struct ceph_msg *msg)
 {