diff options
author | Zijun Hu <quic_zijuhu@quicinc.com> | 2025-05-07 19:50:26 +0800 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2025-06-27 11:11:12 +0100 |
commit | bdb71ee65131890a4ec4d803bc1ef38a80676d25 (patch) | |
tree | b48e4fb46b07d399e6fc70e73790bbbf720c4697 | |
parent | 23fdf46589db718d538fa3e65ab0d57362d50b4a (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.c | 2 |
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; |