summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZijun Hu <quic_zijuhu@quicinc.com>2025-05-07 19:50:26 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2025-06-27 11:11:12 +0100
commitbdb71ee65131890a4ec4d803bc1ef38a80676d25 (patch)
treeb48e4fb46b07d399e6fc70e73790bbbf720c4697
parent23fdf46589db718d538fa3e65ab0d57362d50b4a (diff)
configfs: Do not override creating attribute file failure in populate_attrs()
commit f830edbae247b89228c3e09294151b21e0dc849c upstream. 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> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--fs/configfs/dir.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/configfs/dir.c b/fs/configfs/dir.c
index 43d6bde1adcc..e5b6a427f31c 100644
--- a/fs/configfs/dir.c
+++ b/fs/configfs/dir.c
@@ -600,7 +600,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;