]> www.infradead.org Git - users/hch/block.git/commitdiff
loop: don't call loop_lookup before adding a loop device
authorChristoph Hellwig <hch@lst.de>
Thu, 17 Jun 2021 05:23:59 +0000 (07:23 +0200)
committerChristoph Hellwig <hch@lst.de>
Thu, 17 Jun 2021 06:15:40 +0000 (08:15 +0200)
loop_add returns the right error if the slot wasn't available.

Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/block/loop.c

index 7e1cc41f308b8d3196f330b09d58de4725721f67..23e2d01ad02bd9e8c48ba9e6be5f005ac4267b72 100644 (file)
@@ -2225,14 +2225,12 @@ out:
 static void loop_probe(dev_t dev)
 {
        int idx = MINOR(dev) >> part_shift;
-       struct loop_device *lo;
 
        if (max_loop && idx >= max_loop)
                return;
 
        mutex_lock(&loop_ctl_mutex);
-       if (loop_lookup(&lo, idx) < 0)
-               loop_add(idx);
+       loop_add(idx);
        mutex_unlock(&loop_ctl_mutex);
 }
 
@@ -2249,11 +2247,6 @@ static long loop_control_ioctl(struct file *file, unsigned int cmd,
        ret = -ENOSYS;
        switch (cmd) {
        case LOOP_CTL_ADD:
-               ret = loop_lookup(&lo, parm);
-               if (ret >= 0) {
-                       ret = -EEXIST;
-                       break;
-               }
                ret = loop_add(parm);
                break;
        case LOOP_CTL_REMOVE: