Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'block-5.8-2020-07-05' of git://git.kernel.dk/linux-block

Pull block fixes from Jens Axboe:

- NVMe fixes from Christoph:
- Fix crash in multi-path disk add (Christoph)
- Fix ignore of identify error (Sagi)

- Fix a compiler complaint that a function should be static (Wei)

* tag 'block-5.8-2020-07-05' of git://git.kernel.dk/linux-block:
block: make function __bio_integrity_free() static
nvme: fix a crash in nvme_mpath_add_disk
nvme: fix identify error status silent ignore

+15 -7
+2 -1
block/bio-integrity.c
··· 24 24 flush_workqueue(kintegrityd_wq); 25 25 } 26 26 27 - void __bio_integrity_free(struct bio_set *bs, struct bio_integrity_payload *bip) 27 + static void __bio_integrity_free(struct bio_set *bs, 28 + struct bio_integrity_payload *bip) 28 29 { 29 30 if (bs && mempool_initialized(&bs->bio_integrity_pool)) { 30 31 if (bip->bip_vec)
+9 -3
drivers/nvme/host/core.c
··· 1116 1116 dev_warn(ctrl->device, 1117 1117 "Identify Descriptors failed (%d)\n", status); 1118 1118 /* 1119 - * Don't treat an error as fatal, as we potentially already 1120 - * have a NGUID or EUI-64. 1119 + * Don't treat non-retryable errors as fatal, as we potentially 1120 + * already have a NGUID or EUI-64. If we failed with DNR set, 1121 + * we want to silently ignore the error as we can still 1122 + * identify the device, but if the status has DNR set, we want 1123 + * to propagate the error back specifically for the disk 1124 + * revalidation flow to make sure we don't abandon the 1125 + * device just because of a temporal retry-able error (such 1126 + * as path of transport errors). 1121 1127 */ 1122 - if (status > 0 && !(status & NVME_SC_DNR)) 1128 + if (status > 0 && (status & NVME_SC_DNR)) 1123 1129 status = 0; 1124 1130 goto free_data; 1125 1131 }
+4 -3
drivers/nvme/host/multipath.c
··· 672 672 } 673 673 674 674 if (bdi_cap_stable_pages_required(ns->queue->backing_dev_info)) { 675 - struct backing_dev_info *info = 676 - ns->head->disk->queue->backing_dev_info; 675 + struct gendisk *disk = ns->head->disk; 677 676 678 - info->capabilities |= BDI_CAP_STABLE_WRITES; 677 + if (disk) 678 + disk->queue->backing_dev_info->capabilities |= 679 + BDI_CAP_STABLE_WRITES; 679 680 } 680 681 } 681 682