linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	alan@lxorguk.ukuu.org.uk, Alex Elder <elder@inktank.com>,
	Sage Weil <sage@inktank.com>
Subject: [ 107/171] libceph: have messages point to their connection
Date: Wed, 21 Nov 2012 16:40:53 -0800	[thread overview]
Message-ID: <20121122004044.100528709@linuxfoundation.org> (raw)
In-Reply-To: <20121122004033.298367941@linuxfoundation.org>

3.4-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Alex Elder <elder@inktank.com>

(cherry picked from commit 38941f8031bf042dba3ced6394ba3a3b16c244ea)

When a ceph message is queued for sending it is placed on a list of
pending messages (ceph_connection->out_queue).  When they are
actually sent over the wire, they are moved from that list to
another (ceph_connection->out_sent).  When acknowledgement for the
message is received, it is removed from the sent messages list.

During that entire time the message is "in the possession" of a
single ceph connection.  Keep track of that connection in the
message.  This will be used in the next patch (and is a helpful
bit of information for debugging anyway).

Signed-off-by: Alex Elder <elder@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 include/linux/ceph/messenger.h |    3 +++
 net/ceph/messenger.c           |   27 +++++++++++++++++++++++++--
 2 files changed, 28 insertions(+), 2 deletions(-)

--- a/include/linux/ceph/messenger.h
+++ b/include/linux/ceph/messenger.h
@@ -77,7 +77,10 @@ struct ceph_msg {
 	unsigned nr_pages;              /* size of page array */
 	unsigned page_alignment;        /* io offset in first page */
 	struct ceph_pagelist *pagelist; /* instead of pages */
+
+	struct ceph_connection *con;
 	struct list_head list_head;
+
 	struct kref kref;
 	struct bio  *bio;		/* instead of pages/pagelist */
 	struct bio  *bio_iter;		/* bio iterator */
--- a/net/ceph/messenger.c
+++ b/net/ceph/messenger.c
@@ -414,6 +414,9 @@ static int con_close_socket(struct ceph_
 static void ceph_msg_remove(struct ceph_msg *msg)
 {
 	list_del_init(&msg->list_head);
+	BUG_ON(msg->con == NULL);
+	msg->con = NULL;
+
 	ceph_msg_put(msg);
 }
 static void ceph_msg_remove_list(struct list_head *head)
@@ -433,6 +436,8 @@ static void reset_connection(struct ceph
 	ceph_msg_remove_list(&con->out_sent);
 
 	if (con->in_msg) {
+		BUG_ON(con->in_msg->con != con);
+		con->in_msg->con = NULL;
 		ceph_msg_put(con->in_msg);
 		con->in_msg = NULL;
 	}
@@ -625,8 +630,10 @@ static void prepare_write_message(struct
 			&con->out_temp_ack);
 	}
 
+	BUG_ON(list_empty(&con->out_queue));
 	m = list_first_entry(&con->out_queue, struct ceph_msg, list_head);
 	con->out_msg = m;
+	BUG_ON(m->con != con);
 
 	/* put message on sent list */
 	ceph_msg_get(m);
@@ -1810,6 +1817,8 @@ static int read_partial_message(struct c
 				"error allocating memory for incoming message";
 			return -ENOMEM;
 		}
+
+		BUG_ON(con->in_msg->con != con);
 		m = con->in_msg;
 		m->front.iov_len = 0;    /* haven't read it yet */
 		if (m->middle)
@@ -1905,6 +1914,8 @@ static void process_message(struct ceph_
 {
 	struct ceph_msg *msg;
 
+	BUG_ON(con->in_msg->con != con);
+	con->in_msg->con = NULL;
 	msg = con->in_msg;
 	con->in_msg = NULL;
 
@@ -2264,6 +2275,8 @@ static void ceph_fault(struct ceph_conne
 	con_close_socket(con);
 
 	if (con->in_msg) {
+		BUG_ON(con->in_msg->con != con);
+		con->in_msg->con = NULL;
 		ceph_msg_put(con->in_msg);
 		con->in_msg = NULL;
 	}
@@ -2382,6 +2395,8 @@ void ceph_con_send(struct ceph_connectio
 
 	/* queue */
 	mutex_lock(&con->mutex);
+	BUG_ON(msg->con != NULL);
+	msg->con = con;
 	BUG_ON(!list_empty(&msg->list_head));
 	list_add_tail(&msg->list_head, &con->out_queue);
 	dout("----- %p to %s%lld %d=%s len %d+%d+%d -----\n", msg,
@@ -2407,13 +2422,16 @@ void ceph_con_revoke(struct ceph_connect
 {
 	mutex_lock(&con->mutex);
 	if (!list_empty(&msg->list_head)) {
-		dout("con_revoke %p msg %p - was on queue\n", con, msg);
+		dout("%s %p msg %p - was on queue\n", __func__, con, msg);
 		list_del_init(&msg->list_head);
+		BUG_ON(msg->con == NULL);
+		msg->con = NULL;
+
 		ceph_msg_put(msg);
 		msg->hdr.seq = 0;
 	}
 	if (con->out_msg == msg) {
-		dout("con_revoke %p msg %p - was sending\n", con, msg);
+		dout("%s %p msg %p - was sending\n", __func__, con, msg);
 		con->out_msg = NULL;
 		if (con->out_kvec_is_msg) {
 			con->out_skip = con->out_kvec_bytes;
@@ -2482,6 +2500,8 @@ struct ceph_msg *ceph_msg_new(int type,
 	if (m == NULL)
 		goto out;
 	kref_init(&m->kref);
+
+	m->con = NULL;
 	INIT_LIST_HEAD(&m->list_head);
 
 	m->hdr.tid = 0;
@@ -2602,6 +2622,8 @@ static bool ceph_con_in_msg_alloc(struct
 		mutex_unlock(&con->mutex);
 		con->in_msg = con->ops->alloc_msg(con, hdr, &skip);
 		mutex_lock(&con->mutex);
+		if (con->in_msg)
+			con->in_msg->con = con;
 		if (skip)
 			con->in_msg = NULL;
 
@@ -2615,6 +2637,7 @@ static bool ceph_con_in_msg_alloc(struct
 			       type, front_len);
 			return false;
 		}
+		con->in_msg->con = con;
 		con->in_msg->page_alignment = le16_to_cpu(hdr->data_off);
 	}
 	memcpy(&con->in_msg->hdr, &con->in_hdr, sizeof(con->in_hdr));



  parent reply	other threads:[~2012-11-22 21:32 UTC|newest]

Thread overview: 176+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-22  0:39 [ 000/171] 3.4.20-stable review Greg Kroah-Hartman
2012-11-22  0:39 ` [ 001/171] mm: bugfix: set current->reclaim_state to NULL while returning from kswapd() Greg Kroah-Hartman
2012-11-22  0:39 ` [ 002/171] xfs: drop buffer io reference when a bad bio is built Greg Kroah-Hartman
2012-11-22  0:39 ` [ 003/171] mac80211: sync acccess to tx_filtered/ps_tx_buf queues Greg Kroah-Hartman
2012-11-22  0:39 ` [ 004/171] mac80211: dont send null data packet when not associated Greg Kroah-Hartman
2012-11-22  0:39 ` [ 005/171] mac80211: call skb_dequeue/ieee80211_free_txskb instead of __skb_queue_purge Greg Kroah-Hartman
2012-11-22  0:39 ` [ 006/171] PCI/PM: Fix deadlock when unbinding device if parent in D3cold Greg Kroah-Hartman
2012-11-22  0:39 ` [ 007/171] fanotify: fix missing break Greg Kroah-Hartman
2012-11-22  0:39 ` [ 008/171] module: fix out-by-one error in kallsyms Greg Kroah-Hartman
2012-11-22  0:39 ` [ 009/171] cifs: fix potential buffer overrun in cifs.idmap handling code Greg Kroah-Hartman
2012-11-22  0:39 ` [ 010/171] crypto: cryptd - disable softirqs in cryptd_queue_worker to prevent data corruption Greg Kroah-Hartman
2012-11-22  0:39 ` [ 011/171] ptp: update adjfreq callback description Greg Kroah-Hartman
2012-11-24  0:26   ` Herton Ronaldo Krzesinski
2012-11-26 21:16     ` Keller, Jacob E
2012-11-22  0:39 ` [ 012/171] ALSA: hda: Cirrus: Fix coefficient index for beep configuration Greg Kroah-Hartman
2012-11-22  0:39 ` [ 013/171] ALSA: HDA: Fix digital microphone on CS420x Greg Kroah-Hartman
2012-11-22  0:39 ` [ 014/171] ALSA: hda - Force to reset IEC958 status bits for AD codecs Greg Kroah-Hartman
2012-11-22  0:39 ` [ 015/171] ALSA: hda - Fix empty DAC filling in patch_via.c Greg Kroah-Hartman
2012-11-22  0:39 ` [ 016/171] ALSA: hda - Fix invalid connections in VT1802 codec Greg Kroah-Hartman
2012-11-22  0:39 ` [ 017/171] ALSA: hda - Add new codec ALC668 and ALC900 (default name ALC1150) Greg Kroah-Hartman
2012-11-22  0:39 ` [ 018/171] ALSA: hda - Add a missing quirk entry for iMac 9,1 Greg Kroah-Hartman
2012-11-22  0:39 ` [ 019/171] ASoC: wm8978: pll incorrectly configured when codec is master Greg Kroah-Hartman
2012-11-22  0:39 ` [ 020/171] ASoC: dapm: Use card_list during DAPM shutdown Greg Kroah-Hartman
2012-11-22  0:39 ` [ 021/171] UBIFS: fix mounting problems after power cuts Greg Kroah-Hartman
2012-11-22  0:39 ` [ 022/171] UBIFS: introduce categorized lprops counter Greg Kroah-Hartman
2012-11-22  0:39 ` [ 023/171] Revert "Staging: Android alarm: IOCTL command encoding fix" Greg Kroah-Hartman
2012-11-22  0:39 ` [ 024/171] s390/gup: add missing TASK_SIZE check to get_user_pages_fast() Greg Kroah-Hartman
2012-11-22  0:39 ` [ 025/171] USB: option: add Novatel E362 and Dell Wireless 5800 USB IDs Greg Kroah-Hartman
2012-11-22  0:39 ` [ 026/171] USB: option: add Alcatel X220/X500D " Greg Kroah-Hartman
2012-11-22  0:39 ` [ 027/171] drm/radeon: fix logic error in atombios_encoders.c Greg Kroah-Hartman
2012-11-22  0:39 ` [ 028/171] ttm: Clear the ttm page allocated from high memory zone correctly Greg Kroah-Hartman
2012-11-22  0:39 ` [ 029/171] memcg: oom: fix totalpages calculation for memory.swappiness==0 Greg Kroah-Hartman
2012-11-22  0:39 ` [ 030/171] wireless: allow 40 MHz on world roaming channels 12/13 Greg Kroah-Hartman
2012-11-22  0:39 ` [ 031/171] m68k: fix sigset_t accessor functions Greg Kroah-Hartman
2012-11-22  0:39 ` [ 032/171] ipv4: avoid undefined behavior in do_ip_setsockopt() Greg Kroah-Hartman
2012-11-22  0:39 ` [ 033/171] ipv6: setsockopt(IPIPPROTO_IPV6, IPV6_MINHOPCOUNT) forgot to set return value Greg Kroah-Hartman
2012-11-22  0:39 ` [ 034/171] net: correct check in dev_addr_del() Greg Kroah-Hartman
2012-11-22  0:39 ` [ 035/171] net-rps: Fix brokeness causing OOO packets Greg Kroah-Hartman
2012-11-22  0:39 ` [ 036/171] tmpfs: change final i_blocks BUG to WARNING Greg Kroah-Hartman
2012-11-22  0:39 ` [ 037/171] r8169: use unlimited DMA burst for TX Greg Kroah-Hartman
2012-11-22  0:39 ` [ 038/171] xen/events: fix RCU warning, or Call idle notifier after irq_enter() Greg Kroah-Hartman
2012-11-22  0:39 ` [ 039/171] r8169: Fix WoL on RTL8168d/8111d Greg Kroah-Hartman
2012-11-22  0:39 ` [ 040/171] r8169: allow multicast packets on sub-8168f chipset Greg Kroah-Hartman
2012-11-22  0:39 ` [ 041/171] netfilter: Validate the sequence number of dataless ACK packets as well Greg Kroah-Hartman
2012-11-22  0:39 ` [ 042/171] netfilter: Mark SYN/ACK packets as invalid from original direction Greg Kroah-Hartman
2012-11-22  0:39 ` [ 043/171] netfilter: nf_nat: dont check for port change on ICMP tuples Greg Kroah-Hartman
2012-11-22  0:39 ` [ 044/171] usb: use usb_serial_put in usb_serial_probe errors Greg Kroah-Hartman
2012-11-22  0:39 ` [ 045/171] eCryptfs: Copy up POSIX ACL and read-only flags from lower mount Greg Kroah-Hartman
2012-11-22  0:39 ` [ 046/171] eCryptfs: check for eCryptfs cipher support at mount Greg Kroah-Hartman
2012-11-22  0:39 ` [ 047/171] sky2: Fix for interrupt handler Greg Kroah-Hartman
2012-11-22  0:39 ` [ 048/171] s390/signal: set correct address space control Greg Kroah-Hartman
2012-11-22  0:39 ` [ 049/171] drm/i915: fix overlay on i830M Greg Kroah-Hartman
2012-11-22  0:39 ` [ 050/171] NFS: Wait for session recovery to finish before returning Greg Kroah-Hartman
2012-11-22  0:39 ` [ 051/171] reiserfs: Fix lock ordering during remount Greg Kroah-Hartman
2012-11-22  0:39 ` [ 052/171] reiserfs: Protect reiserfs_quota_on() with write lock Greg Kroah-Hartman
2012-11-22  0:39 ` [ 053/171] reiserfs: Move quota calls out of " Greg Kroah-Hartman
2012-11-22  0:40 ` [ 054/171] reiserfs: Protect reiserfs_quota_write() with " Greg Kroah-Hartman
2012-11-22  0:40 ` [ 055/171] selinux: fix sel_netnode_insert() suspicious rcu dereference Greg Kroah-Hartman
2012-11-22  0:40 ` [ 056/171] crush: clean up types, const-ness Greg Kroah-Hartman
2012-11-22  0:40 ` [ 057/171] crush: adjust local retry threshold Greg Kroah-Hartman
2012-11-22  0:40 ` [ 058/171] crush: be more tolerant of nonsensical crush maps Greg Kroah-Hartman
2012-11-22  0:40 ` [ 059/171] crush: fix tree node weight lookup Greg Kroah-Hartman
2012-11-22  0:40 ` [ 060/171] crush: fix memory leak when destroying tree buckets Greg Kroah-Hartman
2012-11-22  0:40 ` [ 061/171] ceph: osd_client: fix endianness bug in osd_req_encode_op() Greg Kroah-Hartman
2012-11-22  0:40 ` [ 062/171] ceph: messenger: use read_partial() in read_partial_message() Greg Kroah-Hartman
2012-11-22  0:40 ` [ 063/171] ceph: messenger: update "to" in read_partial() caller Greg Kroah-Hartman
2012-11-22  0:40 ` [ 064/171] ceph: messenger: change read_partial() to take "end" arg Greg Kroah-Hartman
2012-11-22  0:40 ` [ 065/171] libceph: dont reset kvec in prepare_write_banner() Greg Kroah-Hartman
2012-11-22  0:40 ` [ 066/171] ceph: messenger: reset connection kvec caller Greg Kroah-Hartman
2012-11-22  0:40 ` [ 067/171] ceph: messenger: send banner in process_connect() Greg Kroah-Hartman
2012-11-22  0:40 ` [ 068/171] ceph: drop msgr argument from prepare_write_connect() Greg Kroah-Hartman
2012-11-22  0:40 ` [ 069/171] ceph: dont set WRITE_PENDING too early Greg Kroah-Hartman
2012-11-22  0:40 ` [ 070/171] ceph: messenger: check prepare_write_connect() result Greg Kroah-Hartman
2012-11-22  0:40 ` [ 071/171] ceph: messenger: rework prepare_connect_authorizer() Greg Kroah-Hartman
2012-11-22  0:40 ` [ 072/171] ceph: messenger: check return from get_authorizer Greg Kroah-Hartman
2012-11-22  0:40 ` [ 073/171] ceph: define ceph_auth_handshake type Greg Kroah-Hartman
2012-11-22  0:40 ` [ 074/171] ceph: messenger: reduce args to create_authorizer Greg Kroah-Hartman
2012-11-22  0:40 ` [ 075/171] ceph: ensure auth ops are defined before use Greg Kroah-Hartman
2012-11-22  0:40 ` [ 076/171] ceph: have get_authorizer methods return pointers Greg Kroah-Hartman
2012-11-22  0:40 ` [ 077/171] ceph: use info returned by get_authorizer Greg Kroah-Hartman
2012-11-22  0:40 ` [ 078/171] ceph: return pointer from prepare_connect_authorizer() Greg Kroah-Hartman
2012-11-22  0:40 ` [ 079/171] ceph: rename prepare_connect_authorizer() Greg Kroah-Hartman
2012-11-22  0:40 ` [ 080/171] ceph: add auth buf in prepare_write_connect() Greg Kroah-Hartman
2012-11-22  0:40 ` [ 081/171] libceph: avoid unregistering osd request when not registered Greg Kroah-Hartman
2012-11-22  0:40 ` [ 082/171] libceph: fix pg_temp updates Greg Kroah-Hartman
2012-11-22  0:40 ` [ 083/171] libceph: osd_client: dont drop reply reference too early Greg Kroah-Hartman
2012-11-22  0:40 ` [ 084/171] libceph: use con get/put ops from osd_client Greg Kroah-Hartman
2012-11-22  0:40 ` [ 085/171] rbd: Clear ceph_msg->bio_iter for retransmitted message Greg Kroah-Hartman
2012-11-22  0:40 ` [ 086/171] libceph: flush msgr queue during mon_client shutdown Greg Kroah-Hartman
2012-11-22  0:40 ` [ 087/171] libceph: fix messenger retry Greg Kroah-Hartman
2012-11-22  0:40 ` [ 088/171] rbd: dont hold spinlock during messenger flush Greg Kroah-Hartman
2012-11-22  0:40 ` [ 089/171] rbd: protect read of snapshot sequence number Greg Kroah-Hartman
2012-11-22  0:40 ` [ 090/171] rbd: store snapshot id instead of index Greg Kroah-Hartman
2012-11-22  0:40 ` [ 091/171] rbd: Fix ceph_snap_context size calculation Greg Kroah-Hartman
2012-11-22  0:40 ` [ 092/171] ceph: check PG_Private flag before accessing page->private Greg Kroah-Hartman
2012-11-22  0:40 ` [ 093/171] libceph: eliminate connection state "DEAD" Greg Kroah-Hartman
2012-11-22  0:40 ` [ 094/171] libceph: kill bad_proto ceph connection op Greg Kroah-Hartman
2012-11-22  0:40 ` [ 095/171] libceph: rename socket callbacks Greg Kroah-Hartman
2012-11-22  0:40 ` [ 096/171] libceph: rename kvec_reset and kvec_add functions Greg Kroah-Hartman
2012-11-22  0:40 ` [ 097/171] libceph: embed ceph messenger structure in ceph_client Greg Kroah-Hartman
2012-11-22  0:40 ` [ 098/171] libceph: start separating connection flags from state Greg Kroah-Hartman
2012-11-22  0:40 ` [ 099/171] libceph: start tracking connection socket state Greg Kroah-Hartman
2012-11-22  0:40 ` [ 100/171] libceph: provide osd number when creating osd Greg Kroah-Hartman
2012-11-22  0:40 ` [ 101/171] libceph: set CLOSED state bit in con_init Greg Kroah-Hartman
2012-11-22  0:40 ` [ 102/171] libceph: embed ceph connection structure in mon_client Greg Kroah-Hartman
2012-11-22  0:40 ` [ 103/171] libceph: drop connection refcounting for mon_client Greg Kroah-Hartman
2012-11-22  0:40 ` [ 104/171] libceph: init monitor connection when opening Greg Kroah-Hartman
2012-11-22  0:40 ` [ 105/171] libceph: fully initialize connection in con_init() Greg Kroah-Hartman
2012-11-22  0:40 ` [ 106/171] libceph: tweak ceph_alloc_msg() Greg Kroah-Hartman
2012-11-22  0:40 ` Greg Kroah-Hartman [this message]
2012-11-22  0:40 ` [ 108/171] libceph: have messages take a connection reference Greg Kroah-Hartman
2012-11-22  0:40 ` [ 109/171] libceph: make ceph_con_revoke() a msg operation Greg Kroah-Hartman
2012-11-22  0:40 ` [ 110/171] libceph: make ceph_con_revoke_message() a msg op Greg Kroah-Hartman
2012-11-22  0:40 ` [ 111/171] libceph: fix overflow in __decode_pool_names() Greg Kroah-Hartman
2012-11-22  0:40 ` [ 112/171] libceph: fix overflow in osdmap_decode() Greg Kroah-Hartman
2012-11-22  0:40 ` [ 113/171] libceph: fix overflow in osdmap_apply_incremental() Greg Kroah-Hartman
2012-11-22  0:41 ` [ 114/171] libceph: transition socket state prior to actual connect Greg Kroah-Hartman
2012-11-22  0:41 ` [ 115/171] libceph: fix NULL dereference in reset_connection() Greg Kroah-Hartman
2012-11-22  0:41 ` [ 116/171] libceph: use con get/put methods Greg Kroah-Hartman
2012-11-22  0:41 ` [ 117/171] libceph: drop ceph_con_get/put helpers and nref member Greg Kroah-Hartman
2012-11-23 13:41   ` Herton Ronaldo Krzesinski
2012-11-26 18:55     ` Greg Kroah-Hartman
2012-11-22  0:41 ` [ 118/171] libceph: encapsulate out message data setup Greg Kroah-Hartman
2012-11-22  0:41 ` [ 119/171] libceph: encapsulate advancing msg page Greg Kroah-Hartman
2012-11-22  0:41 ` [ 120/171] libceph: dont mark footer complete before it is Greg Kroah-Hartman
2012-11-22  0:41 ` [ 121/171] libceph: move init_bio_*() functions up Greg Kroah-Hartman
2012-11-22  0:41 ` [ 122/171] libceph: move init of bio_iter Greg Kroah-Hartman
2012-11-22  0:41 ` [ 123/171] libceph: dont use bio_iter as a flag Greg Kroah-Hartman
2012-11-22  0:41 ` [ 124/171] libceph: SOCK_CLOSED is a flag, not a state Greg Kroah-Hartman
2012-11-22  0:41 ` [ 125/171] libceph: dont change socket state on sock event Greg Kroah-Hartman
2012-11-22  0:41 ` [ 126/171] libceph: just set SOCK_CLOSED when state changes Greg Kroah-Hartman
2012-11-22  0:41 ` [ 127/171] libceph: dont touch con state in con_close_socket() Greg Kroah-Hartman
2012-11-22  0:41 ` [ 128/171] libceph: clear CONNECTING in ceph_con_close() Greg Kroah-Hartman
2012-11-22  0:41 ` [ 129/171] libceph: clear NEGOTIATING when done Greg Kroah-Hartman
2012-11-22  0:41 ` [ 130/171] libceph: define and use an explicit CONNECTED state Greg Kroah-Hartman
2012-11-22  0:41 ` [ 131/171] libceph: separate banner and connect writes Greg Kroah-Hartman
2012-11-22  0:41 ` [ 132/171] libceph: distinguish two phases of connect sequence Greg Kroah-Hartman
2012-11-22  0:41 ` [ 133/171] libceph: small changes to messenger.c Greg Kroah-Hartman
2012-11-22  0:41 ` [ 134/171] libceph: add some fine ASCII art Greg Kroah-Hartman
2012-11-22  0:41 ` [ 135/171] libceph: set peer name on con_open, not init Greg Kroah-Hartman
2012-11-22  0:41 ` [ 136/171] libceph: initialize mon_client con only once Greg Kroah-Hartman
2012-11-22  0:41 ` [ 137/171] libceph: allow sock transition from CONNECTING to CLOSED Greg Kroah-Hartman
2012-11-22  0:41 ` [ 138/171] libceph: initialize msgpool message types Greg Kroah-Hartman
2012-11-22  0:41 ` [ 139/171] libceph: prevent the race of incoming work during teardown Greg Kroah-Hartman
2012-11-22  0:41 ` [ 140/171] libceph: report socket read/write error message Greg Kroah-Hartman
2012-11-22  0:41 ` [ 141/171] libceph: fix mutex coverage for ceph_con_close Greg Kroah-Hartman
2012-11-22  0:41 ` [ 142/171] libceph: resubmit linger ops when pg mapping changes Greg Kroah-Hartman
2012-11-22  0:41 ` [ 143/171] libceph: (re)initialize bio_iter on start of message receive Greg Kroah-Hartman
2012-11-22  0:41 ` [ 144/171] libceph: protect ceph_con_open() with mutex Greg Kroah-Hartman
2012-11-22  0:41 ` [ 145/171] libceph: reset connection retry on successfully negotiation Greg Kroah-Hartman
2012-11-22  0:41 ` [ 146/171] libceph: fix fault locking; close socket on lossy fault Greg Kroah-Hartman
2012-11-22  0:41 ` [ 147/171] libceph: move msgr clear_standby under con mutex protection Greg Kroah-Hartman
2012-11-22  0:41 ` [ 148/171] libceph: move ceph_con_send() closed check under the con mutex Greg Kroah-Hartman
2012-11-22  0:41 ` [ 149/171] libceph: drop gratuitous socket close calls in con_work Greg Kroah-Hartman
2012-11-22  0:41 ` [ 150/171] libceph: close socket directly from ceph_con_close() Greg Kroah-Hartman
2012-11-22  0:41 ` [ 151/171] libceph: drop unnecessary CLOSED check in socket state change callback Greg Kroah-Hartman
2012-11-22  0:41 ` [ 152/171] libceph: replace connection state bits with states Greg Kroah-Hartman
2012-11-22  0:41 ` [ 153/171] libceph: clean up con flags Greg Kroah-Hartman
2012-11-22  0:41 ` [ 154/171] libceph: clear all flags on con_close Greg Kroah-Hartman
2012-11-22  0:41 ` [ 155/171] libceph: fix handling of immediate socket connect failure Greg Kroah-Hartman
2012-11-22  0:41 ` [ 156/171] libceph: revoke mon_client messages on session restart Greg Kroah-Hartman
2012-11-22  0:41 ` [ 157/171] libceph: verify state after retaking con lock after dispatch Greg Kroah-Hartman
2012-11-22  0:41 ` [ 158/171] libceph: avoid dropping con mutex before fault Greg Kroah-Hartman
2012-11-22  0:41 ` [ 159/171] libceph: change ceph_con_in_msg_alloc convention to be less weird Greg Kroah-Hartman
2012-11-22  0:41 ` [ 160/171] libceph: recheck con state after allocating incoming message Greg Kroah-Hartman
2012-11-22  0:41 ` [ 161/171] libceph: fix crypto key null deref, memory leak Greg Kroah-Hartman
2012-11-22  0:41 ` [ 162/171] libceph: delay debugfs initialization until we learn global_id Greg Kroah-Hartman
2012-11-22  0:41 ` [ 163/171] libceph: avoid truncation due to racing banners Greg Kroah-Hartman
2012-11-22  0:41 ` [ 164/171] libceph: only kunmap kmapped pages Greg Kroah-Hartman
2012-11-22  0:41 ` [ 165/171] rbd: reset BACKOFF if unable to re-queue Greg Kroah-Hartman
2012-11-22  0:41 ` [ 166/171] libceph: avoid NULL kref_put when osd reset races with alloc_msg Greg Kroah-Hartman
2012-11-22  0:41 ` [ 167/171] ceph: Fix oops when handling mdsmap that decreases max_mds Greg Kroah-Hartman
2012-11-22  0:41 ` [ 168/171] libceph: check for invalid mapping Greg Kroah-Hartman
2012-11-22  0:41 ` [ 169/171] ceph: avoid 32-bit page index overflow Greg Kroah-Hartman
2012-11-22  0:41 ` [ 170/171] ACPI video: Ignore errors after _DOD evaluation Greg Kroah-Hartman
2012-11-22  0:41 ` [ 171/171] Revert "serial: omap: fix software flow control" Greg Kroah-Hartman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20121122004044.100528709@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=elder@inktank.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sage@inktank.com \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).