]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
configfs: Do not override creating attribute file failure in populate_attrs()
authorZijun Hu <quic_zijuhu@quicinc.com>
Wed, 7 May 2025 11:50:26 +0000 (19:50 +0800)
committerAndreas Hindborg <a.hindborg@kernel.org>
Fri, 9 May 2025 08:11:13 +0000 (10:11 +0200)
populate_attrs() may override failure for creating attribute files
by success for creating subsequent bin attribute files, and have
wrong return value.

Fix by creating bin attribute files under successfully creating
attribute files.

Fixes: 03607ace807b ("configfs: implement binary attributes")
Cc: stable@vger.kernel.org
Reviewed-by: Joel Becker <jlbec@evilplan.org>
Reviewed-by: Breno Leitao <leitao@debian.org>
Signed-off-by: Zijun Hu <quic_zijuhu@quicinc.com>
Link: https://lore.kernel.org/r/20250507-fix_configfs-v3-2-fe2d96de8dc4@quicinc.com
Signed-off-by: Andreas Hindborg <a.hindborg@kernel.org>
fs/configfs/dir.c

index 6d4a1190f694fe5260577dbedeb755d6fcdf6703..ebf32822e29bed882c4204c71b1b3b4e5df2f2bd 100644 (file)
@@ -619,7 +619,7 @@ static int populate_attrs(struct config_item *item)
                                break;
                }
        }
-       if (t->ct_bin_attrs) {
+       if (!error && t->ct_bin_attrs) {
                for (i = 0; (bin_attr = t->ct_bin_attrs[i]) != NULL; i++) {
                        if (ops && ops->is_bin_visible && !ops->is_bin_visible(item, bin_attr, i))
                                continue;