Browse Source

nbd: allow device creation at a specific index

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>
Josef Bacik 8 years ago
parent
commit
e6a76272d0
1 changed files with 9 additions and 0 deletions
  1. 9 0
      drivers/block/nbd.c

+ 9 - 0
drivers/block/nbd.c

@@ -1584,6 +1584,15 @@ again:
 		}
 		}
 	} else {
 	} else {
 		nbd = idr_find(&nbd_index_idr, index);
 		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) {
 	if (!nbd) {
 		printk(KERN_ERR "nbd: couldn't find device at index %d\n",
 		printk(KERN_ERR "nbd: couldn't find device at index %d\n",