From: Zijun Hu Date: Wed, 7 May 2025 11:50:26 +0000 (+0800) Subject: configfs: Do not override creating attribute file failure in populate_attrs() X-Git-Tag: v6.16-rc1~213^2~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f830edbae247b89228c3e09294151b21e0dc849c;p=thirdparty%2Flinux.git 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 Reviewed-by: Breno Leitao Signed-off-by: Zijun Hu Link: https://lore.kernel.org/r/20250507-fix_configfs-v3-2-fe2d96de8dc4@quicinc.com Signed-off-by: Andreas Hindborg --- diff --git a/fs/configfs/dir.c b/fs/configfs/dir.c index 6d4a1190f694f..ebf32822e29be 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;