diff --git a/drivers/md/bcache/request.c b/drivers/md/bcache/request.c
index 04a779573fdd54ee6fdf044afd50d087c63f76ba..fd381da32464f41ed94167a71a97fe872dc53abd 100644
--- a/drivers/md/bcache/request.c
+++ b/drivers/md/bcache/request.c
@@ -993,11 +993,8 @@ static void cached_dev_write_complete(struct closure *cl)
 	struct search *s = container_of(cl, struct search, cl);
 	struct cached_dev *dc = container_of(s->d, struct cached_dev, disk);
 
-	if (!s->iop.bypass)
-		closure_call(&s->iop.cl, bch_data_insert, NULL, cl);
-
 	up_read_non_owner(&dc->writeback_lock);
-	continue_at(cl, cached_dev_bio_complete, NULL);
+	cached_dev_bio_complete(cl);
 }
 
 static void cached_dev_write(struct cached_dev *dc, struct search *s)
@@ -1080,8 +1077,7 @@ static void cached_dev_write(struct cached_dev *dc, struct search *s)
 	}
 
 insert_data:
-	if (!s->iop.bypass)
-		closure_call(&s->iop.cl, bch_data_insert, NULL, cl);
+	closure_call(&s->iop.cl, bch_data_insert, NULL, cl);
 	continue_at(cl, cached_dev_write_complete, NULL);
 }