Merge branch 'io_uring-5.5' into for-linus
authorJens Axboe <axboe@kernel.dk>
Fri, 6 Dec 2019 02:09:26 +0000 (19:09 -0700)
committerJens Axboe <axboe@kernel.dk>
Fri, 6 Dec 2019 02:09:26 +0000 (19:09 -0700)
* io_uring-5.5:
  io_uring: fix a typo in a comment
  io_uring: hook all linked requests via link_list
  io_uring: fix error handling in io_queue_link_head
  io_uring: use hash table for poll command lookups

block/bfq-cgroup.c
block/bio-integrity.c
block/bio.c
block/blk.h

index cea0ae1..e1419ed 100644 (file)
@@ -351,6 +351,9 @@ void bfqg_stats_update_legacy_io(struct request_queue *q, struct request *rq)
 {
        struct bfq_group *bfqg = blkg_to_bfqg(rq->bio->bi_blkg);
 
+       if (!bfqg)
+               return;
+
        blkg_rwstat_add(&bfqg->stats.bytes, rq->cmd_flags, blk_rq_bytes(rq));
        blkg_rwstat_add(&bfqg->stats.ios, rq->cmd_flags, 1);
 }
index fb95dbb..bf62c25 100644 (file)
@@ -87,7 +87,7 @@ EXPORT_SYMBOL(bio_integrity_alloc);
  * Description: Used to free the integrity portion of a bio. Usually
  * called from bio_free().
  */
-static void bio_integrity_free(struct bio *bio)
+void bio_integrity_free(struct bio *bio)
 {
        struct bio_integrity_payload *bip = bio_integrity(bio);
        struct bio_set *bs = bio->bi_pool;
index b1170ec..9d54aa3 100644 (file)
@@ -233,6 +233,9 @@ fallback:
 void bio_uninit(struct bio *bio)
 {
        bio_disassociate_blkg(bio);
+
+       if (bio_integrity(bio))
+               bio_integrity_free(bio);
 }
 EXPORT_SYMBOL(bio_uninit);
 
index 2bea401..6842f28 100644 (file)
@@ -121,6 +121,7 @@ static inline void blk_rq_bio_prep(struct request *rq, struct bio *bio,
 #ifdef CONFIG_BLK_DEV_INTEGRITY
 void blk_flush_integrity(void);
 bool __bio_integrity_endio(struct bio *);
+void bio_integrity_free(struct bio *bio);
 static inline bool bio_integrity_endio(struct bio *bio)
 {
        if (bio_integrity(bio))
@@ -166,6 +167,9 @@ static inline bool bio_integrity_endio(struct bio *bio)
 {
        return true;
 }
+static inline void bio_integrity_free(struct bio *bio)
+{
+}
 #endif /* CONFIG_BLK_DEV_INTEGRITY */
 
 unsigned long blk_rq_timeout(unsigned long timeout);