• Jens Axboe's avatar
    io-wq: improve manager/worker handling over exec · 4fb6ac32
    Jens Axboe authored
    exec will cancel any threads, including the ones that io-wq is using. This
    isn't a problem, in fact we'd prefer it to be that way since it means we
    know that any async work cancels naturally without having to handle it
    proactively.
    
    But it does mean that we need to setup a new manager, as the manager and
    workers are gone. Handle this at queue time, and cancel work if we fail.
    Since the manager can go away without us noticing, ensure that the manager
    itself holds a reference to the 'wq' as well. Rename io_wq_destroy() to
    io_wq_put() to reflect that.
    
    In the future we can now simplify exec cancelation handling, for now just
    leave it the same.
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    4fb6ac32
io-wq.c 26.7 KB