Hi Shan,

On 2018/8/22 3:00 PM, Shan Hai wrote:
> The writeback thread would exit with a lock held when the cache device is
> detached via sysfs interface, fix it by releasing the held lock before exiting
> the thread.

I will change "the thread" to "the while-loop" when I apply this patch.

> 
> Signed-off-by: Shan Hai <[email protected]>

Nice catch!

This one should go to stable trees since 4.17 as well. I will CC stable
maintainers when I submit this one for 4.19.

Thank you for the fix.

Coly Li

> ---
>  drivers/md/bcache/writeback.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/md/bcache/writeback.c b/drivers/md/bcache/writeback.c
> index 481d4cf..adc583f 100644
> --- a/drivers/md/bcache/writeback.c
> +++ b/drivers/md/bcache/writeback.c
> @@ -679,8 +679,10 @@ static int bch_writeback_thread(void *arg)
>                        * data on cache. BCACHE_DEV_DETACHING flag is set in
>                        * bch_cached_dev_detach().
>                        */
> -                     if (test_bit(BCACHE_DEV_DETACHING, &dc->disk.flags))
> +                     if (test_bit(BCACHE_DEV_DETACHING, &dc->disk.flags)) {
> +                             up_write(&dc->writeback_lock);
>                               break;
> +                     }
>               }
>  
>               up_write(&dc->writeback_lock);
> 

Reply via email to