Browse Source

nbd: set queue timeout properly

We can't just set the timeout on the tagset, we have to set it on the
queue as it would have been setup already at this point.

Signed-off-by: Josef Bacik <jbacik@fb.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
Josef Bacik 8 years ago
parent
commit
f858685503
1 changed files with 4 additions and 1 deletions
  1. 4 1
      drivers/block/nbd.c

+ 4 - 1
drivers/block/nbd.c

@@ -844,7 +844,10 @@ static int __nbd_ioctl(struct block_device *bdev, struct nbd_device *nbd,
 		nbd_size_set(nbd, bdev, nbd->blksize, arg);
 		nbd_size_set(nbd, bdev, nbd->blksize, arg);
 		return 0;
 		return 0;
 	case NBD_SET_TIMEOUT:
 	case NBD_SET_TIMEOUT:
-		nbd->tag_set.timeout = arg * HZ;
+		if (arg) {
+			nbd->tag_set.timeout = arg * HZ;
+			blk_queue_rq_timeout(nbd->disk->queue, arg * HZ);
+		}
 		return 0;
 		return 0;
 
 
 	case NBD_SET_FLAGS:
 	case NBD_SET_FLAGS: