block-5.19-2022-07-15

-----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCAAuFiEEwPw5LcreJtl1+l5K99NY+ylx4KYFAmLRxMMQHGF4Ym9lQGtl
 cm5lbC5kawAKCRD301j7KXHgpt6qEADPn4G8R/v7Qh/y9mal1fYHZU2tzk8liDg/
 1YUZ2E0Hh03bNZPTNBrPj2SVuQJ57sqA8amIYXgA/O2Ijq6cjCI+GHu8glL365Nv
 oVZk2reBCvESM/NfXsylkRcDExnzDXKnbSj5QeFA96lv+kjZMypJtglUAuwoMEzO
 +xBGMBtYNxykLAR4CCp6JWjMeRx/tIj0n9FA/go1laA2hvht5yTn2qdf1WyFqlL9
 C47OU006CswtZhCirJb/pK1DAQICf9vr2LrXckHOSfu1PNbLCuCVv2afImXkhke4
 v9hCfTYIJsrrEQXqd8ZwmZawmjWgchoXP1tVmWzfgYBN0OamtxuqaDKtiArE9hUE
 D4XqXxjfvM+TJztDVUGfedRz/DX7+wtiJ8qYQCvkcqPXzcRjSjxDzZA6RdA5Y+IC
 S8Jmh/W0iOGz2XlF7Ug8SZvjqLeiKOysn07RgTBUpzaMXMHlGu+srucjtU2r7bQq
 WWPS/DzMN87dPFxQ+OVO/4Q2d2xG0tX/HKz3EZPvLD/bgKsywARgWJXpGhVyE8iz
 2kRTVQMYctNHc3kAFulVF6DqV8D7/e4ouxfB94qGhjB8Mqekt7FbTg3JkLX15mAw
 bkKZNs/QgOzClWDFbv/fUYa7FfZY0Qse2vjmJiceGCl77xtXtaE3eMsFVoPnP0k0
 FCA0MZYuOA==
 =PVjt
 -----END PGP SIGNATURE-----

Merge tag 'block-5.19-2022-07-15' of git://git.kernel.dk/linux-block

Pull block fixes from Jens Axboe:
 "Two NVMe fixes, and a regression fix for the core block layer from
  this merge window"

* tag 'block-5.19-2022-07-15' of git://git.kernel.dk/linux-block:
  block: fix missing blkcg_bio_issue_init
  nvme: fix block device naming collision
  nvme-pci: fix freeze accounting for error handling
This commit is contained in:
Linus Torvalds 2022-07-16 11:40:10 -07:00
commit 6bca047ecd
3 changed files with 11 additions and 5 deletions

View File

@ -345,6 +345,7 @@ void __blk_queue_split(struct request_queue *q, struct bio **bio,
/* there isn't chance to merge the splitted bio */
split->bi_opf |= REQ_NOMERGE;
blkcg_bio_issue_init(split);
bio_chain(split, *bio);
trace_block_split(split, (*bio)->bi_iter.bi_sector);
submit_bio_noacct(*bio);

View File

@ -3786,7 +3786,7 @@ static int nvme_add_ns_cdev(struct nvme_ns *ns)
}
static struct nvme_ns_head *nvme_alloc_ns_head(struct nvme_ctrl *ctrl,
unsigned nsid, struct nvme_ns_ids *ids)
unsigned nsid, struct nvme_ns_ids *ids, bool is_shared)
{
struct nvme_ns_head *head;
size_t size = sizeof(*head);
@ -3810,6 +3810,7 @@ static struct nvme_ns_head *nvme_alloc_ns_head(struct nvme_ctrl *ctrl,
head->subsys = ctrl->subsys;
head->ns_id = nsid;
head->ids = *ids;
head->shared = is_shared;
kref_init(&head->ref);
if (head->ids.csi) {
@ -3891,12 +3892,11 @@ static int nvme_init_ns_head(struct nvme_ns *ns, unsigned nsid,
nsid);
goto out_unlock;
}
head = nvme_alloc_ns_head(ctrl, nsid, ids);
head = nvme_alloc_ns_head(ctrl, nsid, ids, is_shared);
if (IS_ERR(head)) {
ret = PTR_ERR(head);
goto out_unlock;
}
head->shared = is_shared;
} else {
ret = -EINVAL;
if (!is_shared || !head->shared) {

View File

@ -2690,8 +2690,13 @@ static void nvme_dev_disable(struct nvme_dev *dev, bool shutdown)
struct pci_dev *pdev = to_pci_dev(dev->dev);
mutex_lock(&dev->shutdown_lock);
if (pci_device_is_present(pdev) && pci_is_enabled(pdev)) {
u32 csts = readl(dev->bar + NVME_REG_CSTS);
if (pci_is_enabled(pdev)) {
u32 csts;
if (pci_device_is_present(pdev))
csts = readl(dev->bar + NVME_REG_CSTS);
else
csts = ~0;
if (dev->ctrl.state == NVME_CTRL_LIVE ||
dev->ctrl.state == NVME_CTRL_RESETTING) {