]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - block/blk.h
bio-integrity: stop abusing bi_end_io
[karo-tx-linux.git] / block / blk.h
index 83c8e1100525f7dd80b9a75e83cd2f8efb0f5969..3a3d715bd7253b82522b30fcde33161f909dcf0b 100644 (file)
@@ -81,10 +81,21 @@ static inline void blk_queue_enter_live(struct request_queue *q)
 
 #ifdef CONFIG_BLK_DEV_INTEGRITY
 void blk_flush_integrity(void);
+bool __bio_integrity_endio(struct bio *);
+static inline bool bio_integrity_endio(struct bio *bio)
+{
+       if (bio_integrity(bio))
+               return __bio_integrity_endio(bio);
+       return true;
+}
 #else
 static inline void blk_flush_integrity(void)
 {
 }
+static inline bool bio_integrity_endio(struct bio *bio)
+{
+       return true;
+}
 #endif
 
 void blk_timeout_work(struct work_struct *work);
@@ -143,6 +154,8 @@ static inline struct request *__elv_next_request(struct request_queue *q)
        struct request *rq;
        struct blk_flush_queue *fq = blk_get_flush_queue(q, NULL);
 
+       WARN_ON_ONCE(q->mq_ops);
+
        while (1) {
                if (!list_empty(&q->queue_head)) {
                        rq = list_entry_rq(q->queue_head.next);
@@ -334,4 +347,17 @@ static inline void blk_throtl_bio_endio(struct bio *bio) { }
 static inline void blk_throtl_stat_add(struct request *rq, u64 time) { }
 #endif
 
+#ifdef CONFIG_BOUNCE
+extern int init_emergency_isa_pool(void);
+extern void blk_queue_bounce(struct request_queue *q, struct bio **bio);
+#else
+static inline int init_emergency_isa_pool(void)
+{
+       return 0;
+}
+static inline void blk_queue_bounce(struct request_queue *q, struct bio **bio)
+{
+}
+#endif /* CONFIG_BOUNCE */
+
 #endif /* BLK_INTERNAL_H */