diff options
author | Alex Elder <elder@inktank.com> | 2012-12-06 07:22:04 -0600 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-01-17 08:46:47 -0800 |
commit | ec3f5ec9d2cdb7dcf5e842a244301e4085d45bd0 (patch) | |
tree | 828fc57f0aa3228fa380610c11f908ec60c65218 | |
parent | e15e4f8a7f6cc7670c99a49642cf25525c93f8d1 (diff) |
libceph: register request before unregister linger
(cherry picked from commit c89ce05e0c5a01a256100ac6a6019f276bdd1ca6)
In kick_requests(), we need to register the request before we
unregister the linger request. Otherwise the unregister will
reset the request's osd pointer to NULL.
Signed-off-by: Alex Elder <elder@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | net/ceph/osd_client.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ceph/osd_client.c b/net/ceph/osd_client.c index a2d4d9757c99..093f596fa11f 100644 --- a/net/ceph/osd_client.c +++ b/net/ceph/osd_client.c @@ -1366,8 +1366,8 @@ static void kick_requests(struct ceph_osd_client *osdc, int force_resend) dout("kicking lingering %p tid %llu osd%d\n", req, req->r_tid, req->r_osd ? req->r_osd->o_osd : -1); - __unregister_linger_request(osdc, req); __register_request(osdc, req); + __unregister_linger_request(osdc, req); } mutex_unlock(&osdc->request_mutex); |