72edb25cc320d9dfb71ce10f969911b108257e37
[openwrt/staging/adrian.git] /
1 From c5ceaba74083daf619bdb34d4871e297a177eebf Mon Sep 17 00:00:00 2001
2 From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
3 Date: Wed, 21 Jun 2017 08:26:43 +0200
4 Subject: [PATCH] mtd: partitions: remove sysfs files when deleting all
5 master's partitions
6 MIME-Version: 1.0
7 Content-Type: text/plain; charset=UTF-8
8 Content-Transfer-Encoding: 8bit
9
10 When support for sysfs "offset" file was added it missed to update the
11 del_mtd_partitions function. It deletes partitions just like
12 mtd_del_partition does so both should also take care of removing sysfs
13 files.
14
15 This change moves sysfs_remove_files call to the shared function to fix
16 this issue.
17
18 Fixes: a62c24d755291 ("mtd: part: Add sysfs variable for offset of partition")
19 Cc: Dan Ehrenberg <dehrenberg@chromium.org>
20 Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
21 Signed-off-by: Brian Norris <computersforpeace@gmail.com>
22 ---
23 drivers/mtd/mtdpart.c | 4 ++--
24 1 file changed, 2 insertions(+), 2 deletions(-)
25
26 --- a/drivers/mtd/mtdpart.c
27 +++ b/drivers/mtd/mtdpart.c
28 @@ -671,6 +671,8 @@ static int __mtd_del_partition(struct mt
29 {
30 int err;
31
32 + sysfs_remove_files(&priv->mtd.dev.kobj, mtd_partition_attrs);
33 +
34 err = del_mtd_device(&priv->mtd);
35 if (err)
36 return err;
37 @@ -711,8 +713,6 @@ int mtd_del_partition(struct mtd_info *m
38 list_for_each_entry_safe(slave, next, &mtd_partitions, list)
39 if ((slave->master == master) &&
40 (slave->mtd.index == partno)) {
41 - sysfs_remove_files(&slave->mtd.dev.kobj,
42 - mtd_partition_attrs);
43 ret = __mtd_del_partition(slave);
44 break;
45 }