The Linux Kernel Mailing List
 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, Sage Weil <sage@inktank.com>,
	Alex Elder <elder@inktank.com>
Subject: [ 168/171] libceph: check for invalid mapping
Date: Wed, 21 Nov 2012 16:41:54 -0800	[thread overview]
Message-ID: <20121122004050.205456546@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: Sage Weil <sage@inktank.com>

(cherry picked from commit d63b77f4c552cc3a20506871046ab0fcbc332609)

If we encounter an invalid (e.g., zeroed) mapping, return an error
and avoid a divide by zero.

Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Alex Elder <elder@inktank.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 include/linux/ceph/osd_client.h |    2 +-
 include/linux/ceph/osdmap.h     |    6 +++---
 net/ceph/osd_client.c           |   32 ++++++++++++++++++++------------
 net/ceph/osdmap.c               |   18 ++++++++++++++++--
 4 files changed, 40 insertions(+), 18 deletions(-)

--- a/include/linux/ceph/osd_client.h
+++ b/include/linux/ceph/osd_client.h
@@ -207,7 +207,7 @@ extern void ceph_osdc_handle_reply(struc
 extern void ceph_osdc_handle_map(struct ceph_osd_client *osdc,
 				 struct ceph_msg *msg);
 
-extern void ceph_calc_raw_layout(struct ceph_osd_client *osdc,
+extern int ceph_calc_raw_layout(struct ceph_osd_client *osdc,
 			struct ceph_file_layout *layout,
 			u64 snapid,
 			u64 off, u64 *plen, u64 *bno,
--- a/include/linux/ceph/osdmap.h
+++ b/include/linux/ceph/osdmap.h
@@ -111,9 +111,9 @@ extern struct ceph_osdmap *osdmap_apply_
 extern void ceph_osdmap_destroy(struct ceph_osdmap *map);
 
 /* calculate mapping of a file extent to an object */
-extern void ceph_calc_file_object_mapping(struct ceph_file_layout *layout,
-					  u64 off, u64 *plen,
-					  u64 *bno, u64 *oxoff, u64 *oxlen);
+extern int ceph_calc_file_object_mapping(struct ceph_file_layout *layout,
+					 u64 off, u64 *plen,
+					 u64 *bno, u64 *oxoff, u64 *oxlen);
 
 /* calculate mapping of object to a placement group */
 extern int ceph_calc_object_layout(struct ceph_object_layout *ol,
--- a/net/ceph/osd_client.c
+++ b/net/ceph/osd_client.c
@@ -52,7 +52,7 @@ static int op_has_extent(int op)
 		op == CEPH_OSD_OP_WRITE);
 }
 
-void ceph_calc_raw_layout(struct ceph_osd_client *osdc,
+int ceph_calc_raw_layout(struct ceph_osd_client *osdc,
 			struct ceph_file_layout *layout,
 			u64 snapid,
 			u64 off, u64 *plen, u64 *bno,
@@ -62,12 +62,15 @@ void ceph_calc_raw_layout(struct ceph_os
 	struct ceph_osd_request_head *reqhead = req->r_request->front.iov_base;
 	u64 orig_len = *plen;
 	u64 objoff, objlen;    /* extent in object */
+	int r;
 
 	reqhead->snapid = cpu_to_le64(snapid);
 
 	/* object extent? */
-	ceph_calc_file_object_mapping(layout, off, plen, bno,
-				      &objoff, &objlen);
+	r = ceph_calc_file_object_mapping(layout, off, plen, bno,
+					  &objoff, &objlen);
+	if (r < 0)
+		return r;
 	if (*plen < orig_len)
 		dout(" skipping last %llu, final file extent %llu~%llu\n",
 		     orig_len - *plen, off, *plen);
@@ -83,7 +86,7 @@ void ceph_calc_raw_layout(struct ceph_os
 
 	dout("calc_layout bno=%llx %llu~%llu (%d pages)\n",
 	     *bno, objoff, objlen, req->r_num_pages);
-
+	return 0;
 }
 EXPORT_SYMBOL(ceph_calc_raw_layout);
 
@@ -112,20 +115,25 @@ EXPORT_SYMBOL(ceph_calc_raw_layout);
  *
  * fill osd op in request message.
  */
-static void calc_layout(struct ceph_osd_client *osdc,
-			struct ceph_vino vino,
-			struct ceph_file_layout *layout,
-			u64 off, u64 *plen,
-			struct ceph_osd_request *req,
-			struct ceph_osd_req_op *op)
+static int calc_layout(struct ceph_osd_client *osdc,
+		       struct ceph_vino vino,
+		       struct ceph_file_layout *layout,
+		       u64 off, u64 *plen,
+		       struct ceph_osd_request *req,
+		       struct ceph_osd_req_op *op)
 {
 	u64 bno;
+	int r;
 
-	ceph_calc_raw_layout(osdc, layout, vino.snap, off,
-			     plen, &bno, req, op);
+	r = ceph_calc_raw_layout(osdc, layout, vino.snap, off,
+				 plen, &bno, req, op);
+	if (r < 0)
+		return r;
 
 	snprintf(req->r_oid, sizeof(req->r_oid), "%llx.%08llx", vino.ino, bno);
 	req->r_oid_len = strlen(req->r_oid);
+
+	return r;
 }
 
 /*
--- a/net/ceph/osdmap.c
+++ b/net/ceph/osdmap.c
@@ -952,7 +952,7 @@ bad:
  * for now, we write only a single su, until we can
  * pass a stride back to the caller.
  */
-void ceph_calc_file_object_mapping(struct ceph_file_layout *layout,
+int ceph_calc_file_object_mapping(struct ceph_file_layout *layout,
 				   u64 off, u64 *plen,
 				   u64 *ono,
 				   u64 *oxoff, u64 *oxlen)
@@ -966,11 +966,17 @@ void ceph_calc_file_object_mapping(struc
 
 	dout("mapping %llu~%llu  osize %u fl_su %u\n", off, *plen,
 	     osize, su);
+	if (su == 0 || sc == 0)
+		goto invalid;
 	su_per_object = osize / su;
+	if (su_per_object == 0)
+		goto invalid;
 	dout("osize %u / su %u = su_per_object %u\n", osize, su,
 	     su_per_object);
 
-	BUG_ON((su & ~PAGE_MASK) != 0);
+	if ((su & ~PAGE_MASK) != 0)
+		goto invalid;
+
 	/* bl = *off / su; */
 	t = off;
 	do_div(t, su);
@@ -998,6 +1004,14 @@ void ceph_calc_file_object_mapping(struc
 	*plen = *oxlen;
 
 	dout(" obj extent %llu~%llu\n", *oxoff, *oxlen);
+	return 0;
+
+invalid:
+	dout(" invalid layout\n");
+	*ono = 0;
+	*oxoff = 0;
+	*oxlen = 0;
+	return -EINVAL;
 }
 EXPORT_SYMBOL(ceph_calc_file_object_mapping);
 



  parent reply	other threads:[~2012-11-22 22:34 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 ` [ 107/171] libceph: have messages point to their connection Greg Kroah-Hartman
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 ` Greg Kroah-Hartman [this message]
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=20121122004050.205456546@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