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

From: Christoph Hellwig
Date: Tue Aug 01 2023 - 07:10:36 EST


On Mon, Jul 31, 2023 at 06:28:01PM +0200, Hannes Reinecke wrote:
> 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.