ceph: fix null pointer deref of r_osd in debug output

This causes an oops when debug output is enabled and we kick
an osd request with no current r_osd (sometime after an osd
failure).  Check the pointer before dereferencing.

Signed-off-by: Sage Weil <sage@newdream.net>
This commit is contained in:
Sage Weil 2010-03-15 22:20:39 -07:00
parent 0a990e7093
commit 12eadc1900

View File

@ -913,7 +913,7 @@ static int __kick_requests(struct ceph_osd_client *osdc,
kick: kick:
dout("kicking %p tid %llu osd%d\n", req, req->r_tid, dout("kicking %p tid %llu osd%d\n", req, req->r_tid,
req->r_osd->o_osd); req->r_osd ? req->r_osd->o_osd : -1);
req->r_flags |= CEPH_OSD_FLAG_RETRY; req->r_flags |= CEPH_OSD_FLAG_RETRY;
err = __send_request(osdc, req); err = __send_request(osdc, req);
if (err) { if (err) {