• Jan Kara's avatar
    block: Fix list corruption of blk stats callback list · 3f19cd23
    Jan Kara authored
    When CFQ calls wbt_disable_default(), it will call
    blk_stat_remove_callback() to stop gathering IO statistics for the
    purposes of writeback throttling. Later, when request_queue is
    unregistered, wbt_exit() will call blk_stat_remove_callback() again
    which will try to delete callback from the list again and possibly cause
    list corruption.
    
    Fix the problem by making wbt_disable_default() called wbt_exit() which
    is properly guarded against being called multiple times.
    Signed-off-by: default avatarJan Kara <jack@suse.cz>
    Signed-off-by: default avatarJens Axboe <axboe@fb.com>
    3f19cd23
blk-wbt.c 17 KB