lkml.org 
[lkml]   [2017]   [Sep]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.4 14/66] md/raid5: release/flush io in raid5_do_work()
    Date
    4.4-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Song Liu <songliubraving@fb.com>

    commit 9c72a18e46ebe0f09484cce8ebf847abdab58498 upstream.

    In raid5, there are scenarios where some ios are deferred to a later
    time, and some IO need a flush to complete. To make sure we make
    progress with these IOs, we need to call the following functions:

    flush_deferred_bios(conf);
    r5l_flush_stripe_to_raid(conf->log);

    Both of these functions are called in raid5d(), but missing in
    raid5_do_work(). As a result, these functions are not called
    when multi-threading (group_thread_cnt > 0) is enabled. This patch
    adds calls to these function to raid5_do_work().

    Note for stable branches:

    r5l_flush_stripe_to_raid(conf->log) is need for 4.4+
    flush_deferred_bios(conf) is only needed for 4.11+

    Signed-off-by: Song Liu <songliubraving@fb.com>
    Signed-off-by: Shaohua Li <shli@fb.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/md/raid5.c | 2 ++
    1 file changed, 2 insertions(+)

    --- a/drivers/md/raid5.c
    +++ b/drivers/md/raid5.c
    @@ -5822,6 +5822,8 @@ static void raid5_do_work(struct work_st

    spin_unlock_irq(&conf->device_lock);

    + r5l_flush_stripe_to_raid(conf->log);
    +
    async_tx_issue_pending_all();
    blk_finish_plug(&plug);


    \
     
     \ /
      Last update: 2017-09-24 23:32    [W:4.256 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site