[PATCH] Keep the bio end_io parts inside of bio.c for blk_rq_map_kern()

Signed-off-by: Jens Axboe <axboe@suse.de>
diff --git a/fs/bio.c b/fs/bio.c
index 707b9af..c0d9140 100644
--- a/fs/bio.c
+++ b/fs/bio.c
@@ -701,6 +701,16 @@
 	bio_put(bio);
 }
 
+static int bio_map_kern_endio(struct bio *bio, unsigned int bytes_done, int err)
+{
+	if (bio->bi_size)
+		return 1;
+
+	bio_put(bio);
+	return 0;
+}
+
+
 static struct bio *__bio_map_kern(request_queue_t *q, void *data,
 				  unsigned int len, unsigned int gfp_mask)
 {
@@ -734,6 +744,7 @@
 		offset = 0;
 	}
 
+	bio->bi_end_io = bio_map_kern_endio;
 	return bio;
 }