Pull block fixes from Jens Axboe: - NVMe pull request from Keith, with fixes from a few folks. - bio and sbitmap before atomic barrier fixes (Andrea) - Hang fix for blk-mq freeze and unfreeze (Bob) - Single segment count regression fix (Christoph) - AoE now has a new maintainer - tools/io_uring/ Makefile fix, and sync with liburing (me) * tag 'for-linus-20190524' of git://git.kernel.dk/linux-block: (23 commits) tools/io_uring: sync with liburing tools/io_uring: fix Makefile for pthread library link blk-mq: fix hang caused by freeze/unfreeze sequence block: remove the bi_seg_{front,back}_size fields in struct bio block: remove the segment size check in bio_will_gap block: force an unlimited segment size on queues with a virt boundary block: don't decrement nr_phys_segments for physically contigous segments sbitmap: fix improper use of smp_mb__before_atomic() bio: fix improper use of smp_mb__before_atomic() aoe: list new maintainer for aoe driver nvme-pci: use blk-mq mapping for unmanaged irqs nvme: update MAINTAINERS nvme: copy MTFA field from identify controller nvme: fix memory leak for power latency tolerance nvme: release namespace SRCU protection before performing controller ioctls nvme: merge nvme_ns_ioctl into nvme_ioctl nvme: remove the ifdef around nvme_nvm_ioctl nvme: fix srcu locking on error return in nvme_get_ns_from_disk nvme: Fix known effects nvme-pci: Sync queues on reset ...
Showing the changes to include/linux (3 of 18 files). Show all
Unified · Split
| @@ -210,7 +210,7 @@ static inline void bio_cnt_set(struct bio *bio, unsigned int count) · 209 unmodified lines | |||
| 210 | { | 210 | { |
| 211 | if (count != 1) { | 211 | if (count != 1) { |
| 212 | bio->bi_flags |= (1 << BIO_REFFED); | 212 | bio->bi_flags |= (1 << BIO_REFFED); |
| 213 | smp_mb__before_atomic(); | 213 | smp_mb(); |
| 214 | } | 214 | } |
| 215 | atomic_set(&bio->__bi_cnt, count); | 215 | atomic_set(&bio->__bi_cnt, count); |
| 216 | } | 216 | } |
| @@ -159,13 +159,6 @@ struct bio { · 158 unmodified lines | |||
| 159 | */ | 159 | */ |
| 160 | unsigned int bi_phys_segments; | 160 | unsigned int bi_phys_segments; |
| 161 | 161 | ||
| 162 | /* | ||
| 163 | * To keep track of the max segment size, we account for the | ||
| 164 | * sizes of the first and last mergeable segments in this bio. | ||
| 165 | */ | ||
| 166 | unsigned int bi_seg_front_size; | ||
| 167 | unsigned int bi_seg_back_size; | ||
| 168 | |||
| 169 | struct bvec_iter bi_iter; | 162 | struct bvec_iter bi_iter; |
| 170 | 163 | ||
| 171 | atomic_t __bi_remaining; | 164 | atomic_t __bi_remaining; |
| @@ -542,7 +542,7 @@ struct request_queue { · 541 unmodified lines | |||
| 542 | struct list_head unused_hctx_list; | 542 | struct list_head unused_hctx_list; |
| 543 | spinlock_t unused_hctx_lock; | 543 | spinlock_t unused_hctx_lock; |
| 544 | 544 | ||
| 545 | atomic_t mq_freeze_depth; | 545 | int mq_freeze_depth; |
| 546 | 546 | ||
| 547 | #if defined(CONFIG_BLK_DEV_BSG) | 547 | #if defined(CONFIG_BLK_DEV_BSG) |
| 548 | struct bsg_class_device bsg_dev; | 548 | struct bsg_class_device bsg_dev; |
| @@ -554,6 +554,11 @@ struct request_queue { · 5 unmodified lines | |||
| 554 | #endif | 554 | #endif |
| 555 | struct rcu_head rcu_head; | 555 | struct rcu_head rcu_head; |
| 556 | wait_queue_head_t mq_freeze_wq; | 556 | wait_queue_head_t mq_freeze_wq; |
| 557 | /* | ||
| 558 | * Protect concurrent access to q_usage_counter by | ||
| 559 | * percpu_ref_kill() and percpu_ref_reinit(). | ||
| 560 | */ | ||
| 561 | struct mutex mq_freeze_lock; | ||
| 557 | struct percpu_ref q_usage_counter; | 562 | struct percpu_ref q_usage_counter; |
| 558 | 563 | ||
| 559 | struct blk_mq_tag_set *tag_set; | 564 | struct blk_mq_tag_set *tag_set; |