svn commit: r327711 - head/sys/cam/nvme
Scott Long
scottl at FreeBSD.org
Tue Jan 9 00:17:16 UTC 2018
Author: scottl
Date: Tue Jan 9 00:17:15 2018
New Revision: 327711
URL: https://svnweb.freebsd.org/changeset/base/327711
Log:
Don't hold the periph locks during dump.
Obtained from: Netflix
Modified:
head/sys/cam/nvme/nvme_da.c
Modified: head/sys/cam/nvme/nvme_da.c
==============================================================================
--- head/sys/cam/nvme/nvme_da.c Tue Jan 9 00:10:59 2018 (r327710)
+++ head/sys/cam/nvme/nvme_da.c Tue Jan 9 00:17:15 2018 (r327711)
@@ -388,15 +388,12 @@ ndadump(void *arg, void *virtual, vm_offset_t physical
dp = arg;
periph = dp->d_drv1;
softc = (struct nda_softc *)periph->softc;
- cam_periph_lock(periph);
secsize = softc->disk->d_sectorsize;
lba = offset / secsize;
count = length / secsize;
- if ((periph->flags & CAM_PERIPH_INVALID) != 0) {
- cam_periph_unlock(periph);
+ if ((periph->flags & CAM_PERIPH_INVALID) != 0)
return (ENXIO);
- }
/* xpt_get_ccb returns a zero'd allocation for the ccb, mimic that here */
memset(&nvmeio, 0, sizeof(nvmeio));
@@ -408,7 +405,6 @@ ndadump(void *arg, void *virtual, vm_offset_t physical
0, SF_NO_RECOVERY | SF_NO_RETRY, NULL);
if (error != 0)
printf("Aborting dump due to I/O error %d.\n", error);
- cam_periph_unlock(periph);
return (error);
}
@@ -422,7 +418,6 @@ ndadump(void *arg, void *virtual, vm_offset_t physical
0, SF_NO_RECOVERY | SF_NO_RETRY, NULL);
if (error != 0)
xpt_print(periph->path, "flush cmd failed\n");
- cam_periph_unlock(periph);
return (error);
}
More information about the svn-src-all
mailing list