]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
mtd: partitions: remove sysfs files when deleting all master's partitions
authorRafał Miłecki <rafal@milecki.pl>
Wed, 21 Jun 2017 06:26:43 +0000 (08:26 +0200)
committerBrian Norris <computersforpeace@gmail.com>
Thu, 22 Jun 2017 20:13:06 +0000 (13:13 -0700)
When support for sysfs "offset" file was added it missed to update the
del_mtd_partitions function. It deletes partitions just like
mtd_del_partition does so both should also take care of removing sysfs
files.

This change moves sysfs_remove_files call to the shared function to fix
this issue.

Fixes: a62c24d755291 ("mtd: part: Add sysfs variable for offset of partition")
Cc: Dan Ehrenberg <dehrenberg@chromium.org>
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
drivers/mtd/mtdpart.c

index bcec72148d0b5434ea07314febcf63a07fbc6dd8..9434050accc79761202d15cb9aa484e3e0a6df1e 100644 (file)
@@ -660,6 +660,8 @@ static int __mtd_del_partition(struct mtd_part *priv)
 {
        int err;
 
+       sysfs_remove_files(&priv->mtd.dev.kobj, mtd_partition_attrs);
+
        err = del_mtd_device(&priv->mtd);
        if (err)
                return err;
@@ -700,8 +702,6 @@ int mtd_del_partition(struct mtd_info *master, int partno)
        list_for_each_entry_safe(slave, next, &mtd_partitions, list)
                if ((slave->master == master) &&
                    (slave->mtd.index == partno)) {
-                       sysfs_remove_files(&slave->mtd.dev.kobj,
-                                          mtd_partition_attrs);
                        ret = __mtd_del_partition(slave);
                        break;
                }