diff --git a/drivers/md/md.c b/drivers/md/md.c
index 3802f7a17f1635c17f2bcd6fe426e994e0871cf4..4a0c57db2b67657b8c09cfbe67f5d2cfb487ed95 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -338,6 +338,7 @@ static int super_written(struct bio *bio, unsigned int bytes_done, int error)
 
 	if (atomic_dec_and_test(&rdev->mddev->pending_writes))
 		wake_up(&rdev->mddev->sb_wait);
+	bio_put(bio);
 	return 0;
 }