nbd: allow device creation at a specific index
authorJosef Bacik <jbacik@fb.com>
Mon, 14 Aug 2017 18:25:33 +0000 (18:25 +0000)
committerJens Axboe <axboe@kernel.dk>
Thu, 17 Aug 2017 17:02:57 +0000 (11:02 -0600)
If users really want to use a particular index for their nbd device and it
doesn't already exist there's no reason we can't just create it for them.  Do
this instead of erroring out.

Signed-off-by: Josef Bacik <jbacik@fb.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/block/nbd.c

index 5bdf923294a5d610429581c83e558529f7d40b62..d816ae7db205bc18be9c13ab7c1c80085179fd70 100644 (file)
@@ -1584,6 +1584,15 @@ again:
                }
        } else {
                nbd = idr_find(&nbd_index_idr, index);
+               if (!nbd) {
+                       ret = nbd_dev_add(index);
+                       if (ret < 0) {
+                               mutex_unlock(&nbd_index_mutex);
+                               printk(KERN_ERR "nbd: failed to add new device\n");
+                               return ret;
+                       }
+                       nbd = idr_find(&nbd_index_idr, index);
+               }
        }
        if (!nbd) {
                printk(KERN_ERR "nbd: couldn't find device at index %d\n",