]> git.karo-electronics.de Git - karo-tx-linux.git/commit
libceph: always reset osds when kicking
authorAlex Elder <elder@inktank.com>
Wed, 26 Dec 2012 20:31:40 +0000 (14:31 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 17 Jan 2013 16:46:48 +0000 (08:46 -0800)
commit5172e2dbec4277186424c479f04562db96bee404
tree37d16dc38ac86a9134a33ee1d82e2b76af675f7c
parent99c667637d1e9dc781b6b5e478452c367ee8163a
libceph: always reset osds when kicking

(cherry picked from commit e6d50f67a6b1a6252a616e6e629473b5c4277218)

When ceph_osdc_handle_map() is called to process a new osd map,
kick_requests() is called to ensure all affected requests are
updated if necessary to reflect changes in the osd map.  This
happens in two cases:  whenever an incremental map update is
processed; and when a full map update (or the last one if there is
more than one) gets processed.

In the former case, the kick_requests() call is followed immediately
by a call to reset_changed_osds() to ensure any connections to osds
affected by the map change are reset.  But for full map updates
this isn't done.

Both cases should be doing this osd reset.

Rather than duplicating the reset_changed_osds() call, move it into
the end of kick_requests().

Signed-off-by: Alex Elder <elder@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/ceph/osd_client.c