diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index 22cfba64ce8146b64de1ab0b74e8fdfd140e0154..0deed7274a7fd12b830e094601b0932fd627de35 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -815,7 +815,8 @@ static inline bool rq_mergeable(struct request *rq)
 
 static inline bool blk_write_same_mergeable(struct bio *a, struct bio *b)
 {
-	if (bio_data(a) == bio_data(b))
+	if (bio_page(a) == bio_page(b) &&
+	    bio_offset(a) == bio_offset(b))
 		return true;
 
 	return false;