mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 06:44:00 -04:00
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
...
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
drbd.c
|
||||
|
||||
@@ -1259,7 +1259,7 @@ static int _drbd_send_bitmap(struct drbd_device *device)
|
||||
struct bm_xfer_ctx c;
|
||||
int err;
|
||||
|
||||
if (!expect(device->bitmap))
|
||||
if (!expect(device, device->bitmap))
|
||||
return false;
|
||||
|
||||
if (get_ldev(device)) {
|
||||
@@ -2217,7 +2217,8 @@ void drbd_destroy_device(struct kref *kref)
|
||||
kref_put(&peer_device->connection->kref, drbd_destroy_connection);
|
||||
kfree(peer_device);
|
||||
}
|
||||
memset(device, 0xfd, sizeof(*device));
|
||||
if (device->submit.wq)
|
||||
destroy_workqueue(device->submit.wq);
|
||||
kfree(device);
|
||||
kref_put(&resource->kref, drbd_destroy_resource);
|
||||
}
|
||||
@@ -2249,9 +2250,9 @@ static void do_retry(struct work_struct *ws)
|
||||
bool expected;
|
||||
|
||||
expected =
|
||||
expect(atomic_read(&req->completion_ref) == 0) &&
|
||||
expect(req->rq_state & RQ_POSTPONED) &&
|
||||
expect((req->rq_state & RQ_LOCAL_PENDING) == 0 ||
|
||||
expect(device, atomic_read(&req->completion_ref) == 0) &&
|
||||
expect(device, req->rq_state & RQ_POSTPONED) &&
|
||||
expect(device, (req->rq_state & RQ_LOCAL_PENDING) == 0 ||
|
||||
(req->rq_state & RQ_LOCAL_ABORTED) != 0);
|
||||
|
||||
if (!expected)
|
||||
@@ -2309,7 +2310,6 @@ void drbd_destroy_resource(struct kref *kref)
|
||||
idr_destroy(&resource->devices);
|
||||
free_cpumask_var(resource->cpu_mask);
|
||||
kfree(resource->name);
|
||||
memset(resource, 0xf2, sizeof(*resource));
|
||||
kfree(resource);
|
||||
}
|
||||
|
||||
@@ -2650,7 +2650,6 @@ void drbd_destroy_connection(struct kref *kref)
|
||||
drbd_free_socket(&connection->data);
|
||||
kfree(connection->int_dig_in);
|
||||
kfree(connection->int_dig_vv);
|
||||
memset(connection, 0xfc, sizeof(*connection));
|
||||
kfree(connection);
|
||||
kref_put(&resource->kref, drbd_destroy_resource);
|
||||
}
|
||||
@@ -2774,7 +2773,7 @@ enum drbd_ret_code drbd_create_device(struct drbd_config_context *adm_ctx, unsig
|
||||
|
||||
err = add_disk(disk);
|
||||
if (err)
|
||||
goto out_idr_remove_from_resource;
|
||||
goto out_destroy_workqueue;
|
||||
|
||||
/* inherit the connection state */
|
||||
device->state.conn = first_connection(resource)->cstate;
|
||||
@@ -2788,6 +2787,8 @@ enum drbd_ret_code drbd_create_device(struct drbd_config_context *adm_ctx, unsig
|
||||
drbd_debugfs_device_add(device);
|
||||
return NO_ERROR;
|
||||
|
||||
out_destroy_workqueue:
|
||||
destroy_workqueue(device->submit.wq);
|
||||
out_idr_remove_from_resource:
|
||||
for_each_connection_safe(connection, n, resource) {
|
||||
peer_device = idr_remove(&connection->peer_devices, vnr);
|
||||
@@ -3766,7 +3767,7 @@ _drbd_insert_fault(struct drbd_device *device, unsigned int type)
|
||||
if (ret) {
|
||||
drbd_fault_count++;
|
||||
|
||||
if (__ratelimit(&drbd_ratelimit_state))
|
||||
if (drbd_ratelimit())
|
||||
drbd_warn(device, "***Simulating %s failure\n",
|
||||
_drbd_fault_str(type));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user