Christoph Hellwig
fd71c8a8ac
ataflop: use blk_mq_alloc_disk and blk_cleanup_disk
...
Use blk_mq_alloc_disk and blk_cleanup_disk to simplify the gendisk and
request_queue allocation.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com >
Link: https://lore.kernel.org/r/20210602065345.355274-30-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-06-11 11:54:43 -06:00
Christoph Hellwig
f6d8297412
amiflop: use blk_mq_alloc_disk and blk_cleanup_disk
...
Use blk_mq_alloc_disk and blk_cleanup_disk to simplify the gendisk and
request_queue allocation.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com >
Link: https://lore.kernel.org/r/20210602065345.355274-29-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-06-11 11:54:43 -06:00
Christoph Hellwig
c06cf063b3
scm_blk: use blk_mq_alloc_disk and blk_cleanup_disk
...
Use blk_mq_alloc_disk and blk_cleanup_disk to simplify the gendisk and
request_queue allocation.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Tested-by: Niklas Schnelle <schnelle@linux.ibm.com >
Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com >
Link: https://lore.kernel.org/r/20210602065345.355274-28-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-06-11 11:54:43 -06:00
Christoph Hellwig
77567b25ab
ubi: use blk_mq_alloc_disk and blk_cleanup_disk
...
Use blk_mq_alloc_disk and blk_cleanup_disk to simplify the gendisk and
request_queue allocation.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com >
Link: https://lore.kernel.org/r/20210602065345.355274-27-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-06-11 11:54:43 -06:00
Christoph Hellwig
3b62c140e9
xen-blkfront: use blk_mq_alloc_disk and blk_cleanup_disk
...
Use blk_mq_alloc_disk and blk_cleanup_disk to simplify the gendisk and
request_queue allocation.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com >
Link: https://lore.kernel.org/r/20210602065345.355274-26-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-06-11 11:54:42 -06:00
Christoph Hellwig
693874035e
sx8: use blk_mq_alloc_disk and blk_cleanup_disk
...
Use blk_mq_alloc_disk and blk_cleanup_disk to simplify the gendisk and
request_queue allocation.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com >
Link: https://lore.kernel.org/r/20210602065345.355274-25-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-06-11 11:54:42 -06:00
Christoph Hellwig
2c6ee0ae5f
rnbd: use blk_mq_alloc_disk and blk_cleanup_disk
...
Use blk_mq_alloc_disk and blk_cleanup_disk to simplify the gendisk and
request_queue allocation.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Jack Wang <jinpu.wang@ionos.com >
Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com >
Link: https://lore.kernel.org/r/20210602065345.355274-24-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-06-11 11:54:42 -06:00
Christoph Hellwig
195b1956b8
rbd: use blk_mq_alloc_disk and blk_cleanup_disk
...
Use blk_mq_alloc_disk and blk_cleanup_disk to simplify the gendisk and
request_queue allocation.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com >
Link: https://lore.kernel.org/r/20210602065345.355274-23-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-06-11 11:54:42 -06:00
Christoph Hellwig
262d431f90
pd: use blk_mq_alloc_disk and blk_cleanup_disk
...
Use blk_mq_alloc_disk and blk_cleanup_disk to simplify the gendisk and
request_queue allocation.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com >
Link: https://lore.kernel.org/r/20210602065345.355274-22-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-06-11 11:54:42 -06:00
Christoph Hellwig
6759b1a201
nullb: use blk_mq_alloc_disk
...
Use blk_mq_alloc_disk and blk_cleanup_disk to simplify the gendisk and
request_queue allocation.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com >
Link: https://lore.kernel.org/r/20210602065345.355274-21-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-06-11 11:54:39 -06:00
Christoph Hellwig
4af5f2e030
nbd: use blk_mq_alloc_disk and blk_cleanup_disk
...
Use blk_mq_alloc_disk and blk_cleanup_disk to simplify the gendisk and
request_queue allocation.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com >
Link: https://lore.kernel.org/r/20210602065345.355274-20-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-06-11 11:53:03 -06:00
Christoph Hellwig
1c99502fae
loop: use blk_mq_alloc_disk and blk_cleanup_disk
...
Use blk_mq_alloc_disk and blk_cleanup_disk to simplify the gendisk and
request_queue allocation.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com >
Link: https://lore.kernel.org/r/20210602065345.355274-19-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-06-11 11:53:03 -06:00
Christoph Hellwig
34f84aefe2
floppy: use blk_mq_alloc_disk and blk_cleanup_disk
...
Use blk_mq_alloc_disk and blk_cleanup_disk to simplify the gendisk and
request_queue allocation.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com >
Link: https://lore.kernel.org/r/20210602065345.355274-18-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-06-11 11:53:03 -06:00
Christoph Hellwig
6560ec961a
aoe: use blk_mq_alloc_disk and blk_cleanup_disk
...
Use blk_mq_alloc_disk and blk_cleanup_disk to simplify the gendisk and
request_queue allocation.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com >
Link: https://lore.kernel.org/r/20210602065345.355274-17-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-06-11 11:53:03 -06:00
Christoph Hellwig
08c1d480ed
blk-mq: remove blk_mq_init_sq_queue
...
All users are gone now.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com >
Link: https://lore.kernel.org/r/20210602065345.355274-16-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-06-11 11:53:03 -06:00
Christoph Hellwig
0592c3d166
gdrom: use blk_mq_alloc_disk
...
Use the blk_mq_alloc_disk API to simplify the gendisk and request_queue
allocation.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com >
Link: https://lore.kernel.org/r/20210602065345.355274-15-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-06-11 11:53:03 -06:00
Christoph Hellwig
afea05a18d
sunvdc: use blk_mq_alloc_disk
...
Use the blk_mq_alloc_disk API to simplify the gendisk and request_queue
allocation.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com >
Link: https://lore.kernel.org/r/20210602065345.355274-14-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-06-11 11:53:03 -06:00
Christoph Hellwig
51fbfedfcc
swim: use blk_mq_alloc_disk
...
Use the blk_mq_alloc_disk API to simplify the gendisk and request_queue
allocation.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com >
Link: https://lore.kernel.org/r/20210602065345.355274-13-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-06-11 11:53:03 -06:00
Christoph Hellwig
9c8463e8e1
swim3: use blk_mq_alloc_disk
...
Use the blk_mq_alloc_disk API to simplify the gendisk and request_queue
allocation.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com >
Link: https://lore.kernel.org/r/20210602065345.355274-12-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-06-11 11:53:02 -06:00
Christoph Hellwig
89662ac55a
ps3disk: use blk_mq_alloc_disk
...
Use the blk_mq_alloc_disk API to simplify the gendisk and request_queue
allocation.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Tested-by: Geoff Levand <geoff@infradead.org >
Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com >
Link: https://lore.kernel.org/r/20210602065345.355274-11-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-06-11 11:53:02 -06:00
Christoph Hellwig
6966bb921d
mtd_blkdevs: use blk_mq_alloc_disk
...
Use the blk_mq_alloc_disk API to simplify the gendisk and request_queue
allocation.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com >
Link: https://lore.kernel.org/r/20210602065345.355274-10-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-06-11 11:53:02 -06:00
Christoph Hellwig
51ed5bd55e
mspro: use blk_mq_alloc_disk
...
Use the blk_mq_alloc_disk API to simplify the gendisk and request_queue
allocation.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Acked-by: Ulf Hansson <ulf.hansson@linaro.org >
Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com >
Link: https://lore.kernel.org/r/20210602065345.355274-9-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-06-11 11:53:02 -06:00
Christoph Hellwig
f368b7d7fa
ms_block: use blk_mq_alloc_disk
...
Use the blk_mq_alloc_disk API to simplify the gendisk and request_queue
allocation.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Acked-by: Ulf Hansson <ulf.hansson@linaro.org >
Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com >
Link: https://lore.kernel.org/r/20210602065345.355274-8-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-06-11 11:53:02 -06:00
Christoph Hellwig
c684b57796
pf: use blk_mq_alloc_disk
...
Use the blk_mq_alloc_disk API to simplify the gendisk and request_queue
allocation.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com >
Link: https://lore.kernel.org/r/20210602065345.355274-7-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-06-11 11:53:02 -06:00
Christoph Hellwig
9c4f8971cc
pcd: use blk_mq_alloc_disk
...
Use the blk_mq_alloc_disk API to simplify the gendisk and request_queue
allocation.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com >
Link: https://lore.kernel.org/r/20210602065345.355274-6-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-06-11 11:53:02 -06:00
Christoph Hellwig
89a5f06565
virtio-blk: use blk_mq_alloc_disk
...
Use the blk_mq_alloc_disk API to simplify the gendisk and request_queue
allocation.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com >
Link: https://lore.kernel.org/r/20210602065345.355274-5-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-06-11 11:53:02 -06:00
Christoph Hellwig
b461dfc49e
blk-mq: add the blk_mq_alloc_disk APIs
...
Add a new API to allocate a gendisk including the request_queue for use
with blk-mq based drivers. This is to avoid boilerplate code in drivers.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com >
Link: https://lore.kernel.org/r/20210602065345.355274-4-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-06-11 11:53:02 -06:00
Christoph Hellwig
26a9750aa8
blk-mq: improve the blk_mq_init_allocated_queue interface
...
Don't return the passed in request_queue but a normal error code, and
drop the elevator_init argument in favor of just calling elevator_init_mq
directly from dm-rq.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com >
Link: https://lore.kernel.org/r/20210602065345.355274-3-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-06-11 11:53:02 -06:00
Christoph Hellwig
cdb14e0f77
blk-mq: factor out a blk_mq_alloc_sq_tag_set helper
...
Factour out a helper to initialize a simple single hw queue tag_set from
blk_mq_init_sq_queue. This will allow to phase out blk_mq_init_sq_queue
in favor of a more symmetric and general API.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com >
Link: https://lore.kernel.org/r/20210602065345.355274-2-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-06-11 11:53:02 -06:00
Dan Williams
a624eb5203
libnvdimm/pmem: Fix blk_cleanup_disk() usage
...
The queue_to_disk() helper can not be used after del_gendisk()
communicate @disk via the pgmap->owner.
Otherwise, queue_to_disk() returns NULL resulting in the splat below.
Kernel attempted to read user page (330) - exploit attempt? (uid: 0)
BUG: Kernel NULL pointer dereference on read at 0x00000330
Faulting instruction address: 0xc000000000906344
Oops: Kernel access of bad area, sig: 11 [#1 ]
[..]
NIP [c000000000906344] pmem_pagemap_cleanup+0x24/0x40
LR [c0000000004701d4] memunmap_pages+0x1b4/0x4b0
Call Trace:
[c000000022cbb9c0] [c0000000009063c8] pmem_pagemap_kill+0x28/0x40 (unreliable)
[c000000022cbb9e0] [c0000000004701d4] memunmap_pages+0x1b4/0x4b0
[c000000022cbba90] [c0000000008b28a0] devm_action_release+0x30/0x50
[c000000022cbbab0] [c0000000008b39c8] release_nodes+0x2f8/0x3e0
[c000000022cbbb60] [c0000000008ac440] device_release_driver_internal+0x190/0x2b0
[c000000022cbbba0] [c0000000008a8450] unbind_store+0x130/0x170
Reported-by: Sachin Sant <sachinp@linux.vnet.ibm.com >
Fixes: 87eb73b2ca ("nvdimm-pmem: convert to blk_alloc_disk/blk_cleanup_disk")
Link: http://lore.kernel.org/r/DFB75BA8-603F-4A35-880B-C5B23EF8FA7D@linux.vnet.ibm.com
Cc: Christoph Hellwig <hch@lst.de >
Cc: Ulf Hansson <ulf.hansson@linaro.org >
Cc: Jens Axboe <axboe@kernel.dk >
Signed-off-by: Dan Williams <dan.j.williams@intel.com >
Reviewed-by: Christoph Hellwig <hch@lst.de >
Tested-by: Sachin Sant <sachinp@linux.vnet.ibm.com >
Link: https://lore.kernel.org/r/162310994435.1571616.334551212901820961.stgit@dwillia2-desk3.amr.corp.intel.com
[axboe: fold in compile warning fix]
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-06-09 09:09:22 -06:00
Jan Kara
11c7aa0dde
rq-qos: fix missed wake-ups in rq_qos_throttle try two
...
Commit 545fbd0775 ("rq-qos: fix missed wake-ups in rq_qos_throttle")
tried to fix a problem that a process could be sleeping in rq_qos_wait()
without anyone to wake it up. However the fix is not complete and the
following can still happen:
CPU1 (waiter1) CPU2 (waiter2) CPU3 (waker)
rq_qos_wait() rq_qos_wait()
acquire_inflight_cb() -> fails
acquire_inflight_cb() -> fails
completes IOs, inflight
decreased
prepare_to_wait_exclusive()
prepare_to_wait_exclusive()
has_sleeper = !wq_has_single_sleeper() -> true as there are two sleepers
has_sleeper = !wq_has_single_sleeper() -> true
io_schedule() io_schedule()
Deadlock as now there's nobody to wakeup the two waiters. The logic
automatically blocking when there are already sleepers is really subtle
and the only way to make it work reliably is that we check whether there
are some waiters in the queue when adding ourselves there. That way, we
are guaranteed that at least the first process to enter the wait queue
will recheck the waiting condition before going to sleep and thus
guarantee forward progress.
Fixes: 545fbd0775 ("rq-qos: fix missed wake-ups in rq_qos_throttle")
CC: stable@vger.kernel.org
Signed-off-by: Jan Kara <jack@suse.cz >
Link: https://lore.kernel.org/r/20210607112613.25344-1-jack@suse.cz
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-06-08 15:12:57 -06:00
Long Li
c9c9762d4d
block: return the correct bvec when checking for gaps
...
After commit 07173c3ec2 ("block: enable multipage bvecs"), a bvec can
have multiple pages. But bio_will_gap() still assumes one page bvec while
checking for merging. If the pages in the bvec go across the
seg_boundary_mask, this check for merging can potentially succeed if only
the 1st page is tested, and can fail if all the pages are tested.
Later, when SCSI builds the SG list the same check for merging is done in
__blk_segment_map_sg_merge() with all the pages in the bvec tested. This
time the check may fail if the pages in bvec go across the
seg_boundary_mask (but tested okay in bio_will_gap() earlier, so those
BIOs were merged). If this check fails, we end up with a broken SG list
for drivers assuming the SG list not having offsets in intermediate pages.
This results in incorrect pages written to the disk.
Fix this by returning the multi-page bvec when testing gaps for merging.
Cc: Jens Axboe <axboe@kernel.dk >
Cc: Johannes Thumshirn <johannes.thumshirn@wdc.com >
Cc: Pavel Begunkov <asml.silence@gmail.com >
Cc: Ming Lei <ming.lei@redhat.com >
Cc: Tejun Heo <tj@kernel.org >
Cc: "Matthew Wilcox (Oracle)" <willy@infradead.org >
Cc: Jeffle Xu <jefflexu@linux.alibaba.com >
Cc: linux-kernel@vger.kernel.org
Cc: stable@vger.kernel.org
Fixes: 07173c3ec2 ("block: enable multipage bvecs")
Signed-off-by: Long Li <longli@microsoft.com >
Reviewed-by: Ming Lei <ming.lei@redhat.com >
Reviewed-by: Christoph Hellwig <hch@lst.de >
Link: https://lore.kernel.org/r/1623094445-22332-1-git-send-email-longli@linuxonhyperv.com
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-06-08 15:06:49 -06:00
Bart Van Assche
7cc2623d1c
block: Update blk_update_request() documentation
...
Although the original intent was to use blk_update_request() in stacking
block drivers only, it is used much more widely today. Reflect this in the
documentation block above this function. See also:
* commit 32fab448e5 ("block: add request update interface").
* commit 2e60e02297 ("block: clean up request completion API").
* commit ed6565e734 ("block: handle partial completions for special
payload requests").
Cc: Christoph Hellwig <hch@lst.de >
Cc: Ming Lei <ming.lei@redhat.com >
Cc: Hannes Reinecke <hare@suse.de >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Link: https://lore.kernel.org/r/20210519175226.8853-1-bvanassche@acm.org
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-06-03 14:37:24 -06:00
Jan Kara
613471549f
block: Do not pull requests from the scheduler when we cannot dispatch them
...
Provided the device driver does not implement dispatch budget accounting
(which only SCSI does) the loop in __blk_mq_do_dispatch_sched() pulls
requests from the IO scheduler as long as it is willing to give out any.
That defeats scheduling heuristics inside the scheduler by creating
false impression that the device can take more IO when it in fact
cannot.
For example with BFQ IO scheduler on top of virtio-blk device setting
blkio cgroup weight has barely any impact on observed throughput of
async IO because __blk_mq_do_dispatch_sched() always sucks out all the
IO queued in BFQ. BFQ first submits IO from higher weight cgroups but
when that is all dispatched, it will give out IO of lower weight cgroups
as well. And then we have to wait for all this IO to be dispatched to
the disk (which means lot of it actually has to complete) before the
IO scheduler is queried again for dispatching more requests. This
completely destroys any service differentiation.
So grab request tag for a request pulled out of the IO scheduler already
in __blk_mq_do_dispatch_sched() and do not pull any more requests if we
cannot get it because we are unlikely to be able to dispatch it. That
way only single request is going to wait in the dispatch list for some
tag to free.
Reviewed-by: Ming Lei <ming.lei@redhat.com >
Signed-off-by: Jan Kara <jack@suse.cz >
Link: https://lore.kernel.org/r/20210603104721.6309-1-jack@suse.cz
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-06-03 12:01:27 -06:00
Colin Ian King
90bf3e28ef
null_blk: Fix null pointer dereference on nullb->disk on blk_cleanup_disk call
...
The error handling on a nullb->disk allocation currently jumps to
out_cleanup_disk that calls blk_cleanup_disk with a null pointer causing
a null pointer dereference issue. Fix this by jumping to out_cleanup_tags
instead.
Addresses-Coverity: ("Dereference after null check")
Fixes: 132226b301 ("null_blk: convert to blk_alloc_disk/blk_cleanup_disk")
Signed-off-by: Colin Ian King <colin.king@canonical.com >
Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com >
Reviewed-by: Christoph Hellwig <hch@lst.de >
Link: https://lore.kernel.org/r/20210602100659.11058-1-colin.king@canonical.com
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-06-03 09:54:33 -06:00
Christoph Hellwig
0e0ccdecb3
block: remove bdget_disk
...
Just opencode the xa_load in the callers, as none of them actually
needs a reference to the bdev.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Hannes Reinecke <hare@suse.de >
Reviewed-by: Ming Lei <ming.lei@redhat.com >
Link: https://lore.kernel.org/r/20210525061301.2242282-9-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-06-01 07:47:14 -06:00
Christoph Hellwig
c97d93c31e
block: factor out a part_devt helper
...
Add a helper to find the dev_t for a disk + partno tuple.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Ming Lei <ming.lei@redhat.com >
Link: https://lore.kernel.org/r/20210525061301.2242282-8-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-06-01 07:45:49 -06:00
Christoph Hellwig
ab4b57057d
block: move bd_part_count to struct gendisk
...
The bd_part_count value only makes sense for whole devices, so move it
to struct gendisk and give it a more descriptive name.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Hannes Reinecke <hare@suse.de >
Reviewed-by: Ming Lei <ming.lei@redhat.com >
Link: https://lore.kernel.org/r/20210525061301.2242282-7-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-06-01 07:45:27 -06:00
Christoph Hellwig
c8276b954d
block: split __blkdev_put
...
Split __blkdev_put into one helper for the whole device, and one for
partitions as well as another shared helper for flushing the block
device inode mapping.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Hannes Reinecke <hare@suse.de >
Reviewed-by: Ming Lei <ming.lei@redhat.com >
Link: https://lore.kernel.org/r/20210525061301.2242282-6-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-06-01 07:44:56 -06:00
Christoph Hellwig
e54069acac
block: move adjusting bd_part_count out of __blkdev_get
...
Keep in the callers and thus remove the for_part argument. This mirrors
what is done on the blkdev_get side and slightly simplifies
blkdev_get_part as well.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Ming Lei <ming.lei@rehat.com >
Link: https://lore.kernel.org/r/20210525061301.2242282-5-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-06-01 07:44:56 -06:00
Christoph Hellwig
a8698707a1
block: move bd_mutex to struct gendisk
...
Replace the per-block device bd_mutex with a per-gendisk open_mutex,
thus simplifying locking wherever we deal with partitions.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Ming Lei <ming.lei@redhat.com >
Acked-by: Roger Pau Monné <roger.pau@citrix.com >
Link: https://lore.kernel.org/r/20210525061301.2242282-4-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-06-01 07:44:32 -06:00
Christoph Hellwig
210a6d756f
block: move sync_blockdev from __blkdev_put to blkdev_put
...
Do the early unlocked syncing even earlier to move more code out of
the recursive path.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Ming Lei <ming.lei@redhat.com >
Reviewed-by: Hannes Reinecke <hare@suse.de >
Link: https://lore.kernel.org/r/20210525061301.2242282-3-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-06-01 07:43:32 -06:00
Christoph Hellwig
362529d928
block: split __blkdev_get
...
Split __blkdev_get into one helper for the whole device, and one for
opening partitions. This removes the (bounded) recursion when opening
a partition.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Ming Lei <ming.lei@redhat.com >
Reviewed-by: Hannes Reinecke <hare@suse.de >
Link: https://lore.kernel.org/r/20210525061301.2242282-2-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-06-01 07:43:32 -06:00
Christoph Hellwig
da7ba72960
block: unexport blk_alloc_queue
...
blk_alloc_queue is just an internal helper now, unexport it and remove
it from the public header.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org >
Link: https://lore.kernel.org/r/20210521055116.1053587-27-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-06-01 07:42:24 -06:00
Christoph Hellwig
132226b301
null_blk: convert to blk_alloc_disk/blk_cleanup_disk
...
Convert the null_blk driver to use the blk_alloc_disk and blk_cleanup_disk
helpers to simplify gendisk and request_queue allocation. Note that the
blk-mq mode is left with its own allocations scheme, to be handled later.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org >
Link: https://lore.kernel.org/r/20210521055116.1053587-26-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-06-01 07:42:24 -06:00
Christoph Hellwig
ef35885400
xpram: convert to blk_alloc_disk/blk_cleanup_disk
...
Convert the xpram driver to use the blk_alloc_disk and blk_cleanup_disk
helpers to simplify gendisk and request_queue allocation.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Hannes Reinecke <hare@suse.de >
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org >
Link: https://lore.kernel.org/r/20210521055116.1053587-25-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-06-01 07:42:24 -06:00
Christoph Hellwig
0692ef289f
dcssblk: convert to blk_alloc_disk/blk_cleanup_disk
...
Convert the dcssblk driver to use the blk_alloc_disk and blk_cleanup_disk
helpers to simplify gendisk and request_queue allocation.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Hannes Reinecke <hare@suse.de >
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org >
Link: https://lore.kernel.org/r/20210521055116.1053587-24-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-06-01 07:42:24 -06:00
Christoph Hellwig
684bf9cd8d
ps3vram: convert to blk_alloc_disk/blk_cleanup_disk
...
Convert the ps3vram driver to use the blk_alloc_disk and blk_cleanup_disk
helpers to simplify gendisk and request_queue allocation.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org >
Link: https://lore.kernel.org/r/20210521055116.1053587-23-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-06-01 07:42:24 -06:00
Christoph Hellwig
f9dc931de8
n64cart: convert to blk_alloc_disk
...
Convert the n64cart driver to use the blk_alloc_disk helper to simplify
gendisk and request_queue allocation.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Hannes Reinecke <hare@suse.de >
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org >
Link: https://lore.kernel.org/r/20210521055116.1053587-22-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-06-01 07:42:24 -06:00
Christoph Hellwig
b1833edc4c
simdisk: convert to blk_alloc_disk/blk_cleanup_disk
...
Convert the simdisk driver to use the blk_alloc_disk and blk_cleanup_disk
helpers to simplify gendisk and request_queue allocation.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org >
Link: https://lore.kernel.org/r/20210521055116.1053587-21-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2021-06-01 07:42:24 -06:00