linux-stable/fs/ceph
Sage Weil 87b315a5b5 ceph: avoid reopening osd connections when address hasn't changed
We get a fault callback on _every_ tcp connection fault.  Normally, we
want to reopen the connection when that happens.  If the address we have
is bad, however, and connection attempts always result in a connection
refused or similar error, explicitly closing and reopening the msgr
connection just prevents the messenger's backoff logic from kicking in.
The result can be a console full of

[ 3974.417106] ceph: osd11 10.3.14.138:6800 connection failed
[ 3974.423295] ceph: osd11 10.3.14.138:6800 connection failed
[ 3974.429709] ceph: osd11 10.3.14.138:6800 connection failed

Instead, if we get a fault, and have outstanding requests, but the osd
address hasn't changed and the connection never successfully connected in
the first place, do nothing to the osd connection.  The messenger layer
will back off and retry periodically, because we never connected and thus
the lossy bit is not set.

Instead, touch each request's r_stamp so that handle_timeout can tell the
request is still alive and kicking.

Signed-off-by: Sage Weil <sage@newdream.net>
2010-03-23 07:47:01 -07:00
..
crush ceph: whitespace cleanup 2009-12-03 14:59:44 -08:00
addr.c ceph: move dereference after NULL test 2010-02-23 14:26:34 -08:00
armor.c ceph: aes crypto and base64 encode/decode helpers 2010-02-10 15:04:46 -08:00
auth.c ceph: add support for auth_x authentication protocol 2010-02-11 11:48:45 -08:00
auth.h ceph: allow renewal of auth credentials 2010-02-10 15:04:47 -08:00
auth_none.c ceph: add struct version to auth encoding 2010-02-10 15:04:48 -08:00
auth_none.h ceph: negotiate authentication protocol; implement AUTH_NONE protocol 2009-11-18 16:19:57 -08:00
auth_x.c ceph: clean up service ticket decoding 2010-03-23 07:46:47 -07:00
auth_x.h ceph: add support for auth_x authentication protocol 2010-02-11 11:48:45 -08:00
auth_x_protocol.h ceph: add support for auth_x authentication protocol 2010-02-11 11:48:45 -08:00
buffer.c ceph: buffer decoding helpers 2010-02-10 15:04:39 -08:00
buffer.h ceph: buffer decoding helpers 2010-02-10 15:04:39 -08:00
caps.c ceph: only release unused caps with mds requests 2010-03-23 07:46:55 -07:00
ceph_debug.h ceph: client types 2009-10-06 11:31:07 -07:00
ceph_frag.c ceph: client types 2009-10-06 11:31:07 -07:00
ceph_frag.h ceph: client types 2009-10-06 11:31:07 -07:00
ceph_fs.c ceph: make object hash a pg_pool property 2009-11-06 21:55:25 -08:00
ceph_fs.h ceph: v0.19 release 2010-02-17 13:56:07 -08:00
ceph_hash.c ceph: whitespace cleanup 2009-12-03 14:59:44 -08:00
ceph_hash.h ceph: make object hash a pg_pool property 2009-11-06 21:55:25 -08:00
ceph_strings.c ceph: negotiate authentication protocol; implement AUTH_NONE protocol 2009-11-18 16:19:57 -08:00
crypto.c ceph: aes crypto and base64 encode/decode helpers 2010-02-10 15:04:46 -08:00
crypto.h ceph: aes crypto and base64 encode/decode helpers 2010-02-10 15:04:46 -08:00
debugfs.c ceph: use rbtree for pg pools; decode new osdmap format 2010-02-17 10:02:49 -08:00
decode.h ceph: buffer decoding helpers 2010-02-10 15:04:39 -08:00
dir.c ceph: add feature bits to connection handshake (protocol change) 2009-12-23 09:30:21 -08:00
export.c ceph: nfs re-export support 2009-10-06 11:31:13 -07:00
file.c ceph: return EBADF if waiting for caps on closed file 2010-03-01 15:28:00 -08:00
inode.c ceph: fix inode removal from snap realm when racing with migration 2010-03-20 21:33:08 -07:00
ioctl.c ceph: allow preferred osd to be get/set via layout ioctl 2009-12-03 14:59:48 -08:00
ioctl.h ceph: allow preferred osd to be get/set via layout ioctl 2009-12-03 14:59:48 -08:00
Kconfig ceph: aes crypto and base64 encode/decode helpers 2010-02-10 15:04:46 -08:00
Makefile ceph: add support for auth_x authentication protocol 2010-02-11 11:48:45 -08:00
mds_client.c ceph: prevent dup stale messages to console for restarting mds 2010-03-23 07:46:58 -07:00
mds_client.h ceph: fix iterate_caps removal race 2010-02-17 10:02:47 -08:00
mdsmap.c ceph: hex dump corrupt server data to KERN_DEBUG 2009-12-21 16:39:52 -08:00
mdsmap.h ceph: decode updated mdsmap format 2009-11-20 14:24:33 -08:00
messenger.c ceph: avoid reopening osd connections when address hasn't changed 2010-03-23 07:47:01 -07:00
messenger.h ceph: avoid reopening osd connections when address hasn't changed 2010-03-23 07:47:01 -07:00
mon_client.c ceph: fix up unexpected message handling 2010-02-23 14:26:29 -08:00
mon_client.h ceph: use rbtree for mon statfs requests 2010-02-16 22:01:10 -08:00
msgpool.c ceph: reset front len on return to msgpool; BUG on mismatched front iov 2010-03-01 15:25:00 -08:00
msgpool.h ceph: warn on allocation from msgpool with larger front_len 2009-10-15 18:14:43 -07:00
msgr.h ceph: include type in ceph_entity_addr, filepath 2010-01-29 12:41:09 -08:00
osd_client.c ceph: avoid reopening osd connections when address hasn't changed 2010-03-23 07:47:01 -07:00
osd_client.h ceph: rename r_sent_stamp r_stamp 2010-03-23 07:47:00 -07:00
osdmap.c ceph: fix pg pool decoding from incremental osdmap update 2010-03-23 07:46:57 -07:00
osdmap.h ceph: use rbtree for pg pools; decode new osdmap format 2010-02-17 10:02:49 -08:00
pagelist.c ceph: support ceph_pagelist for message payload 2009-12-23 12:12:31 -08:00
pagelist.h ceph: support ceph_pagelist for message payload 2009-12-23 12:12:31 -08:00
rados.h ceph: use rbtree for pg pools; decode new osdmap format 2010-02-17 10:02:49 -08:00
README ceph: make object hash a pg_pool property 2009-11-06 21:55:25 -08:00
snap.c ceph: add missing locking to protect i_snap_realm_item during split 2010-03-20 21:33:07 -07:00
super.c ceph: reset osd after relevant messages timed out 2010-03-04 11:26:35 -08:00
super.h ceph: update for write_inode API change 2010-03-05 14:49:41 -08:00
types.h ceph: make object hash a pg_pool property 2009-11-06 21:55:25 -08:00
xattr.c ceph: simplify ceph_buffer interface 2009-12-07 12:17:17 -08:00

#
# The following files are shared by (and manually synchronized
# between) the Ceph userland and kernel client.
#
# userland                  kernel
src/include/ceph_fs.h	    fs/ceph/ceph_fs.h
src/include/ceph_fs.cc	    fs/ceph/ceph_fs.c
src/include/msgr.h	    fs/ceph/msgr.h
src/include/rados.h	    fs/ceph/rados.h
src/include/ceph_strings.cc fs/ceph/ceph_strings.c
src/include/ceph_frag.h	    fs/ceph/ceph_frag.h
src/include/ceph_frag.cc    fs/ceph/ceph_frag.c
src/include/ceph_hash.h	    fs/ceph/ceph_hash.h
src/include/ceph_hash.cc    fs/ceph/ceph_hash.c
src/crush/crush.c	    fs/ceph/crush/crush.c
src/crush/crush.h	    fs/ceph/crush/crush.h
src/crush/mapper.c	    fs/ceph/crush/mapper.c
src/crush/mapper.h	    fs/ceph/crush/mapper.h
src/crush/hash.h	    fs/ceph/crush/hash.h
src/crush/hash.c	    fs/ceph/crush/hash.c