Thread (18 messages) 18 messages, 4 authors, 2023-08-10

Re: [PATCH v2 1/4] blk-flush: flush_rq should inherit first_rq's cmd_flags

From: Christoph Hellwig <hch@lst.de>
Date: 2023-08-01 11:11:46
Also in: lkml

On Tue, Aug 01, 2023 at 01:04:32PM +0200, Christoph Hellwig wrote:
On Mon, Jul 31, 2023 at 06:28:01PM +0200, Hannes Reinecke wrote:
quoted
The flush machinery is sending flushes before and/or after the original 
request (preflush/postflush). For blocked transports (ie during FC RSCN 
handling) the transport will error out commands depending on the FAILFAST 
setting. If FAILFAST is set the SCSI layer gets an STS_TRANSPORT error 
(causing the I/O to be retried), but STS_ERROR if not set (causing I/O to 
failed).

So if the FAILFAST setting is _not_ aligned between flush_rq and the 
original we'll get an error on the flush rq and a retry on the original rq, 
causing the entire command to fail.

I guess we need to align them.
But you can't, because multiple pre/postflushes are coalesced into a
single outstanding flush request.  They can and will not match quite
commonly.
And if you mean the REQ_FAILFAST_TRANSPORT added by dm - this will
never even see the flush state machine, as that is run in dm-mpath
which then inserts the fully built flush request into the lower request
queue.  At least for request based multipath, bio could hit it.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help