On Mon, Oct 14, 2019 at 1:48 AM Xiao Ni <xni@xxxxxxxxxx> wrote: > > Hi Song > > Could you merge this one? I updated the commit log as: ===================== 8< ====================== md: improve handling of bio with REQ_PREFLUSH in md_flush_request() If pers->make_request fails in md_flush_request(), the bio is lost. To fix this, pass back a bool to indicate if the original make_request call should continue to handle the I/O and instead of assuming the flush logic will push it to completion. Convert md_flush_request to return a bool and no longer calls the raid driver's make_request function. If the return is true, then the md flush logic has or will complete the bio and the md make_request call is done. If false, then the md make_request function needs to keep processing like it is a normal bio. Let the original call to md_handle_request handle any need to retry sending the bio to the raid driver's make_request function should it be needed. Also mark md_flush_request and the make_request function pointer as __must_check to issue warnings should these critical return values be ignored. Fixes: 2bc13b83e629 ("md: batch flush requests.") Cc: stable@xxxxxxxxxxxxxxx # # v4.19+ Signed-off-by: David Jeffery <djeffery@xxxxxxxxxx> Reviewed-by: Xiao Ni <xni@xxxxxxxxxx> Signed-off-by: Song Liu <songliubraving@xxxxxx> ===================== 8< ====================== Please let me know if anything is not accurate. Thanks, Song