Explorar el Código

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>
Sage Weil hace 15 años
padre
commit
12eadc1900
Se han modificado 1 ficheros con 1 adiciones y 1 borrados
  1. 1 1
      fs/ceph/osd_client.c

+ 1 - 1
fs/ceph/osd_client.c

@@ -913,7 +913,7 @@ static int __kick_requests(struct ceph_osd_client *osdc,
 
 kick:
 		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;
 		err = __send_request(osdc, req);
 		if (err) {