mm,hwpoison: rework soft offline for in-use pages
[linux-block.git] / block / blk.h
index 49e2928a163299cf2729850bdeed8c18e35b98d6..dfab98465db9a54086b0f57fb544540ab2671a90 100644 (file)
@@ -114,6 +114,11 @@ static inline bool bio_integrity_endio(struct bio *bio)
        return true;
 }
 
+bool blk_integrity_merge_rq(struct request_queue *, struct request *,
+               struct request *);
+bool blk_integrity_merge_bio(struct request_queue *, struct request *,
+               struct bio *);
+
 static inline bool integrity_req_gap_back_merge(struct request *req,
                struct bio *next)
 {
@@ -137,6 +142,16 @@ static inline bool integrity_req_gap_front_merge(struct request *req,
 void blk_integrity_add(struct gendisk *);
 void blk_integrity_del(struct gendisk *);
 #else /* CONFIG_BLK_DEV_INTEGRITY */
+static inline bool blk_integrity_merge_rq(struct request_queue *rq,
+               struct request *r1, struct request *r2)
+{
+       return true;
+}
+static inline bool blk_integrity_merge_bio(struct request_queue *rq,
+               struct request *r, struct bio *b)
+{
+       return true;
+}
 static inline bool integrity_req_gap_back_merge(struct request *req,
                struct bio *next)
 {
@@ -169,14 +184,10 @@ static inline void blk_integrity_del(struct gendisk *disk)
 unsigned long blk_rq_timeout(unsigned long timeout);
 void blk_add_timer(struct request *req);
 
-bool bio_attempt_front_merge(struct request *req, struct bio *bio,
-               unsigned int nr_segs);
-bool bio_attempt_back_merge(struct request *req, struct bio *bio,
-               unsigned int nr_segs);
-bool bio_attempt_discard_merge(struct request_queue *q, struct request *req,
-               struct bio *bio);
 bool blk_attempt_plug_merge(struct request_queue *q, struct bio *bio,
                unsigned int nr_segs, struct request **same_queue_rq);
+bool blk_bio_list_merge(struct request_queue *q, struct list_head *list,
+                       struct bio *bio, unsigned int nr_segs);
 
 void blk_account_io_start(struct request *req);
 void blk_account_io_done(struct request *req, u64 now);
@@ -223,10 +234,6 @@ ssize_t part_timeout_store(struct device *, struct device_attribute *,
 void __blk_queue_split(struct bio **bio, unsigned int *nr_segs);
 int ll_back_merge_fn(struct request *req, struct bio *bio,
                unsigned int nr_segs);
-int ll_front_merge_fn(struct request *req,  struct bio *bio,
-               unsigned int nr_segs);
-struct request *attempt_back_merge(struct request_queue *q, struct request *rq);
-struct request *attempt_front_merge(struct request_queue *q, struct request *rq);
 int blk_attempt_req_merge(struct request_queue *q, struct request *rq,
                                struct request *next);
 unsigned int blk_recalc_rq_segments(struct request *rq);
@@ -350,7 +357,7 @@ char *disk_name(struct gendisk *hd, int partno, char *buf);
 #define ADDPART_FLAG_NONE      0
 #define ADDPART_FLAG_RAID      1
 #define ADDPART_FLAG_WHOLEDISK 2
-void delete_partition(struct gendisk *disk, struct hd_struct *part);
+void delete_partition(struct hd_struct *part);
 int bdev_add_partition(struct block_device *bdev, int partno,
                sector_t start, sector_t length);
 int bdev_del_partition(struct block_device *bdev, int partno);