• Paolo Valente's avatar
    block, bfq: move forward the getting of an extra ref in bfq_bfqq_move · fd1bb3ae
    Paolo Valente authored
    Commit ecedd3d7 ("block, bfq: get extra ref to prevent a queue
    from being freed during a group move") gets an extra reference to a
    bfq_queue before possibly deactivating it (temporarily), in
    bfq_bfqq_move(). This prevents the bfq_queue from disappearing before
    being reactivated in its new group.
    
    Yet, the bfq_queue may also be expired (i.e., its service may be
    stopped) before the bfq_queue is deactivated. And also an expiration
    may lead to a premature freeing. This commit fixes this issue by
    simply moving forward the getting of the extra reference already
    introduced by commit ecedd3d7 ("block, bfq: get extra ref to
    prevent a queue from being freed during a group move").
    
    Reported-by: cki-project@redhat.com
    Tested-by: cki-project@redhat.com
    Signed-off-by: default avatarPaolo Valente <paolo.valente@linaro.org>
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    fd1bb3ae
bfq-cgroup.c 37.8 KB