summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZijun Hu <quic_zijuhu@quicinc.com>2025-05-07 19:50:26 +0800
committerAndreas Hindborg <a.hindborg@kernel.org>2025-05-09 10:11:13 +0200
commitf830edbae247b89228c3e09294151b21e0dc849c (patch)
treecfa94ff53d615c04b33a82dea58d011cff26b7ec
parentd78aa60cfa7ece7477a4089a3a4b520ec7beba1b (diff)
configfs: Do not override creating attribute file failure in populate_attrs()
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>
-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 6d4a1190f694..ebf32822e29b 100644
--- a/fs/configfs/dir.c
+++ b/fs/configfs/dir.c
@@ -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;