Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 9 Jan 2018 00:17:15 +0000 (UTC)
From:      Scott Long <scottl@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r327711 - head/sys/cam/nvme
Message-ID:  <201801090017.w090HFkx074103@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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);
 }
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201801090017.w090HFkx074103>