• Ming Lei's avatar
    ublk: add timeout handler · c0b79b0f
    Ming Lei authored
    Add timeout handler, so that we can provide forward progress guarantee for
    unprivileged ublk, which can't be trusted.
    
    One thing is that sync() calls sync_bdevs(wait) for all block devices after
    running sync_bdevs(no_wait), and if one device can't move on, the sync() won't
    return any more.
    
    Add timeout for unprivileged ublk to avoid such affect for other users which call
    sync() syscall.
    
    Meantime clear UBLK_F_USER_RECOVERY_REISSUE for unprivileged ublk since
    that feature may cause IO hang too.
    
    Fixes: 4093cb5a ("ublk_drv: add mechanism for supporting unprivileged ublk device")
    Signed-off-by: default avatarMing Lei <ming.lei@redhat.com>
    Link: https://lore.kernel.org/r/20230502024231.888498-1-ming.lei@redhat.comSigned-off-by: default avatarJens Axboe <axboe@kernel.dk>
    c0b79b0f
ublk_drv.c 58.6 KB