On 08/09/2019 04:26 PM, Mike Christie wrote:
>  
> +static void nbd_set_cmd_timeout(struct nbd_device *nbd, u64 timeout)
> +{
> +     nbd->tag_set.timeout = timeout * HZ;
> +     blk_queue_rq_timeout(nbd->disk->queue, timeout * HZ);
> +}
> +
>  /* Must be called with config_lock held */
>  static int __nbd_ioctl(struct block_device *bdev, struct nbd_device *nbd,
>                      unsigned int cmd, unsigned long arg)
> @@ -1275,10 +1281,8 @@ static int __nbd_ioctl(struct block_device *bdev, 
> struct nbd_device *nbd,
>               nbd_size_set(nbd, config->blksize, arg);
>               return 0;
>       case NBD_SET_TIMEOUT:
> -             if (arg) {
> -                     nbd->tag_set.timeout = arg * HZ;
> -                     blk_queue_rq_timeout(nbd->disk->queue, arg * HZ);
> -             }
> +             if (arg)
> +                     nbd_set_cmd_timeout(nbd, arg);
>               return 0;

Josef,

These patches still leave one regression where you used to be able to
disable the timer after it has already been set. My patches did not fix
that yet. I will fix it on the resend after you give me your comments.

Reply via email to