generic: 6.1: manually refresh hack patches
[openwrt/openwrt.git] / target / linux / generic / hack-6.1 / 402-mtd-blktrans-call-add-disks-after-mtd-device.patch
index 32a7fb6266422f41d37551e038882ad79ad08050..7999f5ac6d8955eab46974edce9a0588b9bc1d12 100644 (file)
@@ -25,11 +25,13 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
 
 --- a/drivers/mtd/mtd_blkdevs.c
 +++ b/drivers/mtd/mtd_blkdevs.c
-@@ -384,13 +384,6 @@ int add_mtd_blktrans_dev(struct mtd_blkt
+@@ -384,19 +384,8 @@ int add_mtd_blktrans_dev(struct mtd_blkt
        if (new->readonly)
                set_disk_ro(gd, 1);
  
--      device_add_disk(&new->mtd->dev, gd, NULL);
+-      ret = device_add_disk(&new->mtd->dev, gd, NULL);
+-      if (ret)
+-              goto out_cleanup_disk;
 -
 -      if (new->disk_attributes) {
 -              ret = sysfs_create_group(&disk_to_dev(gd)->kobj,
@@ -38,8 +40,12 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
 -      }
        return 0;
  
+-out_cleanup_disk:
+-      put_disk(new->disk);
  out_free_tag_set:
-@@ -402,6 +395,27 @@ out_list_del:
+       blk_mq_free_tag_set(new->tag_set);
+ out_kfree_tag_set:
+@@ -402,6 +395,35 @@ out_list_del:
        return ret;
  }
  
@@ -54,7 +60,10 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
 +                      if (disk_live(dev->disk))
 +                              continue;
 +
-+                      device_add_disk(&dev->mtd->dev, dev->disk, NULL);
++                      ret = device_add_disk(&dev->mtd->dev, dev->disk, NULL);
++                      if (ret)
++                              goto out_cleanup_disk;
++
 +                      if (dev->disk_attributes) {
 +                              ret = sysfs_create_group(&disk_to_dev(dev->disk)->kobj,
 +                                                      dev->disk_attributes);
@@ -62,6 +71,11 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
 +                      }
 +              }
 +      }
++
++      return;
++
++out_cleanup_disk:
++      put_disk(dev->disk);
 +}
 +
  int del_mtd_blktrans_dev(struct mtd_blktrans_dev *old)