diff --git a/block/blk-core.c b/block/blk-core.c
index e1c2775c75972b64347c3f86350c60ea461510c4..4aa9ccd02a509b644a5c0c6e551b1aabd53f28f5 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -2400,11 +2400,11 @@ bool blk_update_request(struct request *req, int error, unsigned int nr_bytes)
 {
 	int total_bytes;
 
+	trace_block_rq_complete(req->q, req, nr_bytes);
+
 	if (!req->bio)
 		return false;
 
-	trace_block_rq_complete(req->q, req, nr_bytes);
-
 	/*
 	 * For fs requests, rq is just carrier of independent bio's
 	 * and each partial completion should be handled separately.