On Mon, 2 Sep 2019, Huaisheng Ye wrote:

> From: Huaisheng Ye <[email protected]>
> 
> The array bio_in_progress[2] only have chance to be increased and
> decreased with ssd mode. For pmem mode, they are not involved at all.
> So skip writecache_wait_for_ios in writecache_flush for pmem.
> 
> Suggested-by: Doris Yu <[email protected]>
> Signed-off-by: Huaisheng Ye <[email protected]>
> ---
>  drivers/md/dm-writecache.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/md/dm-writecache.c b/drivers/md/dm-writecache.c
> index c481947..d06b8aa 100644
> --- a/drivers/md/dm-writecache.c
> +++ b/drivers/md/dm-writecache.c
> @@ -726,7 +726,8 @@ static void writecache_flush(struct dm_writecache *wc)
>       }
>       writecache_commit_flushed(wc);
>  
> -     writecache_wait_for_ios(wc, WRITE);
> +     if (!WC_MODE_PMEM(wc))
> +             writecache_wait_for_ios(wc, WRITE);
>  
>       wc->seq_count++;
>       pmem_assign(sb(wc)->seq_count, cpu_to_le64(wc->seq_count));
> -- 
> 1.8.3.1

I think this is not needed - wait_event in writecache_wait_for_ios exits 
immediatelly if the condition is true.

This code path is not so hot that we would need microoptimizations like 
this to avoid function calls.

Mikulas

Reply via email to