From: Vu Pham Date: Mon, 2 Feb 2015 10:49:34 +0000 (-0800) Subject: xio: Fix release xio message on closed connection issue X-Git-Tag: v0.93~86^2~1^2~2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=1d68abb7a2e768e8defa49365d2bbd218f7fedfb;p=ceph.git xio: Fix release xio message on closed connection issue Do not call xio_release_msg on closed connection Signed-off-by: Vu Pham --- diff --git a/src/msg/xio/XioPortal.h b/src/msg/xio/XioPortal.h index cd7a2e7025803..fdc197230b93e 100644 --- a/src/msg/xio/XioPortal.h +++ b/src/msg/xio/XioPortal.h @@ -158,9 +158,13 @@ public: inline void release_xio_rsp(XioRsp* xrsp) { struct xio_msg *msg = xrsp->dequeue(); struct xio_msg *next_msg = NULL; + int code; while (msg) { next_msg = static_cast(msg->user_context); - int code = xio_release_msg(msg); + if (unlikely(!xrsp->xcon->conn || !xrsp->xcon->is_connected())) + code = ENOTCONN; + else + code = xio_release_msg(msg); if (unlikely(code)) { /* very unlikely, so log it */ xrsp->xcon->msg_release_fail(msg, code);