Skip to content

Commit ce8a79d

Browse files
committed
Merge tag 'for-6.2/block-2022-12-08' of git://git.kernel.dk/linux
Pull block updates from Jens Axboe: - NVMe pull requests via Christoph: - Support some passthrough commands without CAP_SYS_ADMIN (Kanchan Joshi) - Refactor PCIe probing and reset (Christoph Hellwig) - Various fabrics authentication fixes and improvements (Sagi Grimberg) - Avoid fallback to sequential scan due to transient issues (Uday Shankar) - Implement support for the DEAC bit in Write Zeroes (Christoph Hellwig) - Allow overriding the IEEE OUI and firmware revision in configfs for nvmet (Aleksandr Miloserdov) - Force reconnect when number of queue changes in nvmet (Daniel Wagner) - Minor fixes and improvements (Uros Bizjak, Joel Granados, Sagi Grimberg, Christoph Hellwig, Christophe JAILLET) - Fix and cleanup nvme-fc req allocation (Chaitanya Kulkarni) - Use the common tagset helpers in nvme-pci driver (Christoph Hellwig) - Cleanup the nvme-pci removal path (Christoph Hellwig) - Use kstrtobool() instead of strtobool (Christophe JAILLET) - Allow unprivileged passthrough of Identify Controller (Joel Granados) - Support io stats on the mpath device (Sagi Grimberg) - Minor nvmet cleanup (Sagi Grimberg) - MD pull requests via Song: - Code cleanups (Christoph) - Various fixes - Floppy pull request from Denis: - Fix a memory leak in the init error path (Yuan) - Series fixing some batch wakeup issues with sbitmap (Gabriel) - Removal of the pktcdvd driver that was deprecated more than 5 years ago, and subsequent removal of the devnode callback in struct block_device_operations as no users are now left (Greg) - Fix for partition read on an exclusively opened bdev (Jan) - Series of elevator API cleanups (Jinlong, Christoph) - Series of fixes and cleanups for blk-iocost (Kemeng) - Series of fixes and cleanups for blk-throttle (Kemeng) - Series adding concurrent support for sync queues in BFQ (Yu) - Series bringing drbd a bit closer to the out-of-tree maintained version (Christian, Joel, Lars, Philipp) - Misc drbd fixes (Wang) - blk-wbt fixes and tweaks for enable/disable (Yu) - Fixes for mq-deadline for zoned devices (Damien) - Add support for read-only and offline zones for null_blk (Shin'ichiro) - Series fixing the delayed holder tracking, as used by DM (Yu, Christoph) - Series enabling bio alloc caching for IRQ based IO (Pavel) - Series enabling userspace peer-to-peer DMA (Logan) - BFQ waker fixes (Khazhismel) - Series fixing elevator refcount issues (Christoph, Jinlong) - Series cleaning up references around queue destruction (Christoph) - Series doing quiesce by tagset, enabling cleanups in drivers (Christoph, Chao) - Series untangling the queue kobject and queue references (Christoph) - Misc fixes and cleanups (Bart, David, Dawei, Jinlong, Kemeng, Ye, Yang, Waiman, Shin'ichiro, Randy, Pankaj, Christoph) * tag 'for-6.2/block-2022-12-08' of git://git.kernel.dk/linux: (247 commits) blktrace: Fix output non-blktrace event when blk_classic option enabled block: sed-opal: Don't include <linux/kernel.h> sed-opal: allow using IOC_OPAL_SAVE for locking too blk-cgroup: Fix typo in comment block: remove bio_set_op_attrs nvmet: don't open-code NVME_NS_ATTR_RO enumeration nvme-pci: use the tagset alloc/free helpers nvme: add the Apple shared tag workaround to nvme_alloc_io_tag_set nvme: only set reserved_tags in nvme_alloc_io_tag_set for fabrics controllers nvme: consolidate setting the tagset flags nvme: pass nr_maps explicitly to nvme_alloc_io_tag_set block: bio_copy_data_iter nvme-pci: split out a nvme_pci_ctrl_is_dead helper nvme-pci: return early on ctrl state mismatch in nvme_reset_work nvme-pci: rename nvme_disable_io_queues nvme-pci: cleanup nvme_suspend_queue nvme-pci: remove nvme_pci_disable nvme-pci: remove nvme_disable_admin_queue nvme: merge nvme_shutdown_ctrl into nvme_disable_ctrl nvme: use nvme_wait_ready in nvme_shutdown_ctrl ...
2 parents 96f7e44 + f596da3 commit ce8a79d

File tree

144 files changed

+3229
-5907
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

144 files changed

+3229
-5907
lines changed

Documentation/ABI/testing/debugfs-pktcdvd

Lines changed: 0 additions & 18 deletions
This file was deleted.

Documentation/ABI/testing/sysfs-bus-pci

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -407,6 +407,16 @@ Description:
407407
file contains a '1' if the memory has been published for
408408
use outside the driver that owns the device.
409409

410+
What: /sys/bus/pci/devices/.../p2pmem/allocate
411+
Date: August 2022
412+
Contact: Logan Gunthorpe <[email protected]>
413+
Description:
414+
This file allows mapping p2pmem into userspace. For each
415+
mmap() call on this file, the kernel will allocate a chunk
416+
of Peer-to-Peer memory for use in Peer-to-Peer transactions.
417+
This memory can be used in O_DIRECT calls to NVMe backed
418+
files for Peer-to-Peer copies.
419+
410420
What: /sys/bus/pci/devices/.../link/clkpm
411421
/sys/bus/pci/devices/.../link/l0s_aspm
412422
/sys/bus/pci/devices/.../link/l1_aspm

Documentation/ABI/testing/sysfs-class-pktcdvd

Lines changed: 0 additions & 97 deletions
This file was deleted.

Documentation/block/inline-encryption.rst

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ Therefore, we also introduce *blk-crypto-fallback*, which is an implementation
142142
of inline encryption using the kernel crypto API. blk-crypto-fallback is built
143143
into the block layer, so it works on any block device without any special setup.
144144
Essentially, when a bio with an encryption context is submitted to a
145-
request_queue that doesn't support that encryption context, the block layer will
145+
block_device that doesn't support that encryption context, the block layer will
146146
handle en/decryption of the bio using blk-crypto-fallback.
147147

148148
For encryption, the data cannot be encrypted in-place, as callers usually rely
@@ -187,15 +187,15 @@ API presented to users of the block layer
187187

188188
``blk_crypto_config_supported()`` allows users to check ahead of time whether
189189
inline encryption with particular crypto settings will work on a particular
190-
request_queue -- either via hardware or via blk-crypto-fallback. This function
190+
block_device -- either via hardware or via blk-crypto-fallback. This function
191191
takes in a ``struct blk_crypto_config`` which is like blk_crypto_key, but omits
192192
the actual bytes of the key and instead just contains the algorithm, data unit
193193
size, etc. This function can be useful if blk-crypto-fallback is disabled.
194194

195195
``blk_crypto_init_key()`` allows users to initialize a blk_crypto_key.
196196

197197
Users must call ``blk_crypto_start_using_key()`` before actually starting to use
198-
a blk_crypto_key on a request_queue (even if ``blk_crypto_config_supported()``
198+
a blk_crypto_key on a block_device (even if ``blk_crypto_config_supported()``
199199
was called earlier). This is needed to initialize blk-crypto-fallback if it
200200
will be needed. This must not be called from the data path, as this may have to
201201
allocate resources, which may deadlock in that case.
@@ -207,7 +207,7 @@ for en/decryption. Users don't need to worry about freeing the bio_crypt_ctx
207207
later, as that happens automatically when the bio is freed or reset.
208208

209209
Finally, when done using inline encryption with a blk_crypto_key on a
210-
request_queue, users must call ``blk_crypto_evict_key()``. This ensures that
210+
block_device, users must call ``blk_crypto_evict_key()``. This ensures that
211211
the key is evicted from all keyslots it may be programmed into and unlinked from
212212
any kernel data structures it may be linked into.
213213

@@ -221,9 +221,9 @@ as follows:
221221
5. ``blk_crypto_evict_key()`` (after all I/O has completed)
222222
6. Zeroize the blk_crypto_key (this has no dedicated function)
223223

224-
If a blk_crypto_key is being used on multiple request_queues, then
224+
If a blk_crypto_key is being used on multiple block_devices, then
225225
``blk_crypto_config_supported()`` (if used), ``blk_crypto_start_using_key()``,
226-
and ``blk_crypto_evict_key()`` must be called on each request_queue.
226+
and ``blk_crypto_evict_key()`` must be called on each block_device.
227227

228228
API presented to device drivers
229229
===============================

MAINTAINERS

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16430,13 +16430,6 @@ S: Supported
1643016430
F: Documentation/devicetree/bindings/input/pine64,pinephone-keyboard.yaml
1643116431
F: drivers/input/keyboard/pinephone-keyboard.c
1643216432

16433-
PKTCDVD DRIVER
16434-
16435-
S: Orphan
16436-
F: drivers/block/pktcdvd.c
16437-
F: include/linux/pktcdvd.h
16438-
F: include/uapi/linux/pktcdvd.h
16439-
1644016433
PLANTOWER PMS7003 AIR POLLUTION SENSOR DRIVER
1644116434
M: Tomasz Duszynski <[email protected]>
1644216435
S: Maintained

block/bdev.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ int fsync_bdev(struct block_device *bdev)
224224
EXPORT_SYMBOL(fsync_bdev);
225225

226226
/**
227-
* freeze_bdev -- lock a filesystem and force it into a consistent state
227+
* freeze_bdev - lock a filesystem and force it into a consistent state
228228
* @bdev: blockdevice to lock
229229
*
230230
* If a superblock is found on this device, we take the s_umount semaphore
@@ -268,7 +268,7 @@ int freeze_bdev(struct block_device *bdev)
268268
EXPORT_SYMBOL(freeze_bdev);
269269

270270
/**
271-
* thaw_bdev -- unlock filesystem
271+
* thaw_bdev - unlock filesystem
272272
* @bdev: blockdevice to unlock
273273
*
274274
* Unlocks the filesystem and marks it writeable again after freeze_bdev().

block/bfq-cgroup.c

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ void bfqg_stats_update_io_add(struct bfq_group *bfqg, struct bfq_queue *bfqq,
224224
{
225225
blkg_rwstat_add(&bfqg->stats.queued, opf, 1);
226226
bfqg_stats_end_empty_time(&bfqg->stats);
227-
if (!(bfqq == ((struct bfq_data *)bfqg->bfqd)->in_service_queue))
227+
if (!(bfqq == bfqg->bfqd->in_service_queue))
228228
bfqg_stats_set_start_group_wait_time(bfqg, bfqq_group(bfqq));
229229
}
230230

@@ -552,6 +552,7 @@ static void bfq_pd_init(struct blkg_policy_data *pd)
552552
*/
553553
bfqg->bfqd = bfqd;
554554
bfqg->active_entities = 0;
555+
bfqg->num_queues_with_pending_reqs = 0;
555556
bfqg->online = true;
556557
bfqg->rq_pos_tree = RB_ROOT;
557558
}
@@ -645,6 +646,7 @@ void bfq_bfqq_move(struct bfq_data *bfqd, struct bfq_queue *bfqq,
645646
{
646647
struct bfq_entity *entity = &bfqq->entity;
647648
struct bfq_group *old_parent = bfqq_group(bfqq);
649+
bool has_pending_reqs = false;
648650

649651
/*
650652
* No point to move bfqq to the same group, which can happen when
@@ -665,6 +667,11 @@ void bfq_bfqq_move(struct bfq_data *bfqd, struct bfq_queue *bfqq,
665667
*/
666668
bfqq->ref++;
667669

670+
if (entity->in_groups_with_pending_reqs) {
671+
has_pending_reqs = true;
672+
bfq_del_bfqq_in_groups_with_pending_reqs(bfqq);
673+
}
674+
668675
/* If bfqq is empty, then bfq_bfqq_expire also invokes
669676
* bfq_del_bfqq_busy, thereby removing bfqq and its entity
670677
* from data structures related to current group. Otherwise we
@@ -692,6 +699,9 @@ void bfq_bfqq_move(struct bfq_data *bfqd, struct bfq_queue *bfqq,
692699
/* pin down bfqg and its associated blkg */
693700
bfqg_and_blkg_get(bfqg);
694701

702+
if (has_pending_reqs)
703+
bfq_add_bfqq_in_groups_with_pending_reqs(bfqq);
704+
695705
if (bfq_bfqq_busy(bfqq)) {
696706
if (unlikely(!bfqd->nonrot_with_queueing))
697707
bfq_pos_tree_add_move(bfqd, bfqq);

0 commit comments

Comments
 (0)