From mboxrd@z Thu Jan 1 00:00:00 1970 From: keith.busch@intel.com (Keith Busch) Date: Thu, 15 Mar 2018 14:29:31 -0600 Subject: [PATCH] nvme_fc: io timeout should defer abort to ctrl reset In-Reply-To: <20180312163222.23043-1-jsmart2021@gmail.com> References: <20180312163222.23043-1-jsmart2021@gmail.com> Message-ID: <20180315202930.GD30695@localhost.localdomain> On Mon, Mar 12, 2018@09:32:22AM -0700, James Smart wrote: > The current nvme_fc code, when an io times out, will abort the io > on the fc link, then call the error recovery routine to reset the > controller. It is during the reset of the controller that the > transport will wait for all ios to be aborted before sending a > Disconnect LS to the target. > > However, the reset routine only waits for the io which it generates > the abort for to complete. Any io that was aborted just prior to the > reset isn't in it's list to wait for. Thus the Disconnect is getting > sent before the aborts have completed. > > Correct by removing the abort in the timeout handler. The reset will > generate the abort. At that point the timeout handler can be simplified > to request the reset (via the error handler) and restart the timeout > timer. > > Also fixes a small typo in a comment in the reset handler. > > Signed-off-by: James Smart This sounds right to me despite being less familiar with the nvme-fc portion, and applied for 4.17.