* [PATCH 1/2] f2fs: don't kobject_put in the error case
@ 2025-01-31 22:24 Jaegeuk Kim
2025-01-31 22:24 ` [PATCH 2/2] f2fs: introduce f2fs_base_attr for global sysfs entries Jaegeuk Kim
` (3 more replies)
0 siblings, 4 replies; 6+ messages in thread
From: Jaegeuk Kim @ 2025-01-31 22:24 UTC (permalink / raw)
To: linux-kernel, linux-f2fs-devel; +Cc: Jaegeuk Kim
Fix a wrong kobject_put in the error path.
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
---
fs/f2fs/sysfs.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/fs/f2fs/sysfs.c b/fs/f2fs/sysfs.c
index d15c68b28952..001e97cd0a96 100644
--- a/fs/f2fs/sysfs.c
+++ b/fs/f2fs/sysfs.c
@@ -1605,7 +1605,7 @@ int __init f2fs_init_sysfs(void)
ret = kobject_init_and_add(&f2fs_feat, &f2fs_feat_ktype,
NULL, "features");
if (ret)
- goto put_kobject;
+ goto unregister_out;
f2fs_proc_root = proc_mkdir("fs/f2fs", NULL);
if (!f2fs_proc_root) {
@@ -1616,6 +1616,7 @@ int __init f2fs_init_sysfs(void)
return 0;
put_kobject:
kobject_put(&f2fs_feat);
+unregister_out:
kset_unregister(&f2fs_kset);
return ret;
}
--
2.48.1.362.g079036d154-goog
^ permalink raw reply [flat|nested] 6+ messages in thread* [PATCH 2/2] f2fs: introduce f2fs_base_attr for global sysfs entries 2025-01-31 22:24 [PATCH 1/2] f2fs: don't kobject_put in the error case Jaegeuk Kim @ 2025-01-31 22:24 ` Jaegeuk Kim 2025-02-06 2:11 ` [f2fs-dev] " Chao Yu 2025-02-02 14:58 ` [PATCH 1/2] f2fs: don't kobject_put in the error case Markus Elfring ` (2 subsequent siblings) 3 siblings, 1 reply; 6+ messages in thread From: Jaegeuk Kim @ 2025-01-31 22:24 UTC (permalink / raw) To: linux-kernel, linux-f2fs-devel; +Cc: Jaegeuk Kim In /sys/fs/f2fs/features, there's no f2fs_sb_info, so let's avoid to get the pointer. Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org> --- fs/f2fs/sysfs.c | 74 ++++++++++++++++++++++++++++++++++--------------- 1 file changed, 52 insertions(+), 22 deletions(-) diff --git a/fs/f2fs/sysfs.c b/fs/f2fs/sysfs.c index 001e97cd0a96..4bd7b17a20c8 100644 --- a/fs/f2fs/sysfs.c +++ b/fs/f2fs/sysfs.c @@ -61,6 +61,12 @@ struct f2fs_attr { int id; }; +struct f2fs_base_attr { + struct attribute attr; + ssize_t (*show)(struct f2fs_base_attr *a, char *buf); + ssize_t (*store)(struct f2fs_base_attr *a, const char *buf, size_t len); +}; + static ssize_t f2fs_sbi_show(struct f2fs_attr *a, struct f2fs_sb_info *sbi, char *buf); @@ -862,6 +868,25 @@ static void f2fs_sb_release(struct kobject *kobj) complete(&sbi->s_kobj_unregister); } +static ssize_t f2fs_base_attr_show(struct kobject *kobj, + struct attribute *attr, char *buf) +{ + struct f2fs_base_attr *a = container_of(attr, + struct f2fs_base_attr, attr); + + return a->show ? a->show(a, buf) : 0; +} + +static ssize_t f2fs_base_attr_store(struct kobject *kobj, + struct attribute *attr, + const char *buf, size_t len) +{ + struct f2fs_base_attr *a = container_of(attr, + struct f2fs_base_attr, attr); + + return a->store ? a->store(a, buf, len) : 0; +} + /* * Note that there are three feature list entries: * 1) /sys/fs/f2fs/features @@ -880,14 +905,13 @@ static void f2fs_sb_release(struct kobject *kobj) * please add new on-disk feature in this list only. * - ref. F2FS_SB_FEATURE_RO_ATTR() */ -static ssize_t f2fs_feature_show(struct f2fs_attr *a, - struct f2fs_sb_info *sbi, char *buf) +static ssize_t f2fs_feature_show(struct f2fs_base_attr *a, char *buf) { return sysfs_emit(buf, "supported\n"); } #define F2FS_FEATURE_RO_ATTR(_name) \ -static struct f2fs_attr f2fs_attr_##_name = { \ +static struct f2fs_base_attr f2fs_base_attr_##_name = { \ .attr = {.name = __stringify(_name), .mode = 0444 }, \ .show = f2fs_feature_show, \ } @@ -1256,37 +1280,38 @@ static struct attribute *f2fs_attrs[] = { }; ATTRIBUTE_GROUPS(f2fs); +#define BASE_ATTR_LIST(name) (&f2fs_base_attr_##name.attr) static struct attribute *f2fs_feat_attrs[] = { #ifdef CONFIG_FS_ENCRYPTION - ATTR_LIST(encryption), - ATTR_LIST(test_dummy_encryption_v2), + BASE_ATTR_LIST(encryption), + BASE_ATTR_LIST(test_dummy_encryption_v2), #if IS_ENABLED(CONFIG_UNICODE) - ATTR_LIST(encrypted_casefold), + BASE_ATTR_LIST(encrypted_casefold), #endif #endif /* CONFIG_FS_ENCRYPTION */ #ifdef CONFIG_BLK_DEV_ZONED - ATTR_LIST(block_zoned), + BASE_ATTR_LIST(block_zoned), #endif - ATTR_LIST(atomic_write), - ATTR_LIST(extra_attr), - ATTR_LIST(project_quota), - ATTR_LIST(inode_checksum), - ATTR_LIST(flexible_inline_xattr), - ATTR_LIST(quota_ino), - ATTR_LIST(inode_crtime), - ATTR_LIST(lost_found), + BASE_ATTR_LIST(atomic_write), + BASE_ATTR_LIST(extra_attr), + BASE_ATTR_LIST(project_quota), + BASE_ATTR_LIST(inode_checksum), + BASE_ATTR_LIST(flexible_inline_xattr), + BASE_ATTR_LIST(quota_ino), + BASE_ATTR_LIST(inode_crtime), + BASE_ATTR_LIST(lost_found), #ifdef CONFIG_FS_VERITY - ATTR_LIST(verity), + BASE_ATTR_LIST(verity), #endif - ATTR_LIST(sb_checksum), + BASE_ATTR_LIST(sb_checksum), #if IS_ENABLED(CONFIG_UNICODE) - ATTR_LIST(casefold), + BASE_ATTR_LIST(casefold), #endif - ATTR_LIST(readonly), + BASE_ATTR_LIST(readonly), #ifdef CONFIG_F2FS_FS_COMPRESSION - ATTR_LIST(compression), + BASE_ATTR_LIST(compression), #endif - ATTR_LIST(pin_file), + BASE_ATTR_LIST(pin_file), NULL, }; ATTRIBUTE_GROUPS(f2fs_feat); @@ -1362,9 +1387,14 @@ static struct kset f2fs_kset = { .kobj = {.ktype = &f2fs_ktype}, }; +static const struct sysfs_ops f2fs_feat_attr_ops = { + .show = f2fs_base_attr_show, + .store = f2fs_base_attr_store, +}; + static const struct kobj_type f2fs_feat_ktype = { .default_groups = f2fs_feat_groups, - .sysfs_ops = &f2fs_attr_ops, + .sysfs_ops = &f2fs_feat_attr_ops, }; static struct kobject f2fs_feat = { -- 2.48.1.362.g079036d154-goog ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [f2fs-dev] [PATCH 2/2] f2fs: introduce f2fs_base_attr for global sysfs entries 2025-01-31 22:24 ` [PATCH 2/2] f2fs: introduce f2fs_base_attr for global sysfs entries Jaegeuk Kim @ 2025-02-06 2:11 ` Chao Yu 0 siblings, 0 replies; 6+ messages in thread From: Chao Yu @ 2025-02-06 2:11 UTC (permalink / raw) To: Jaegeuk Kim, linux-kernel, linux-f2fs-devel; +Cc: chao On 2/1/25 06:24, Jaegeuk Kim via Linux-f2fs-devel wrote: > In /sys/fs/f2fs/features, there's no f2fs_sb_info, so let's avoid to get > the pointer. > > Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org> Reviewed-by: Chao Yu <chao@kernel.org> Thanks, ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/2] f2fs: don't kobject_put in the error case 2025-01-31 22:24 [PATCH 1/2] f2fs: don't kobject_put in the error case Jaegeuk Kim 2025-01-31 22:24 ` [PATCH 2/2] f2fs: introduce f2fs_base_attr for global sysfs entries Jaegeuk Kim @ 2025-02-02 14:58 ` Markus Elfring 2025-02-03 18:32 ` Jaegeuk Kim 2025-02-06 18:40 ` [f2fs-dev] " patchwork-bot+f2fs 3 siblings, 0 replies; 6+ messages in thread From: Markus Elfring @ 2025-02-02 14:58 UTC (permalink / raw) To: Jaegeuk Kim, linux-f2fs-devel; +Cc: LKML > Fix a wrong kobject_put in the error path. * How do you think about to add any tags (like “Fixes” and “Cc”) accordingly? * Will cover letters be usually helpful for such patch series? Regards, Markus ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/2] f2fs: don't kobject_put in the error case 2025-01-31 22:24 [PATCH 1/2] f2fs: don't kobject_put in the error case Jaegeuk Kim 2025-01-31 22:24 ` [PATCH 2/2] f2fs: introduce f2fs_base_attr for global sysfs entries Jaegeuk Kim 2025-02-02 14:58 ` [PATCH 1/2] f2fs: don't kobject_put in the error case Markus Elfring @ 2025-02-03 18:32 ` Jaegeuk Kim 2025-02-06 18:40 ` [f2fs-dev] " patchwork-bot+f2fs 3 siblings, 0 replies; 6+ messages in thread From: Jaegeuk Kim @ 2025-02-03 18:32 UTC (permalink / raw) To: linux-kernel, linux-f2fs-devel I checked this patch is wrong. Sorry for the noise. On 01/31, Jaegeuk Kim wrote: > Fix a wrong kobject_put in the error path. > > Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org> > --- > fs/f2fs/sysfs.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/fs/f2fs/sysfs.c b/fs/f2fs/sysfs.c > index d15c68b28952..001e97cd0a96 100644 > --- a/fs/f2fs/sysfs.c > +++ b/fs/f2fs/sysfs.c > @@ -1605,7 +1605,7 @@ int __init f2fs_init_sysfs(void) > ret = kobject_init_and_add(&f2fs_feat, &f2fs_feat_ktype, > NULL, "features"); > if (ret) > - goto put_kobject; > + goto unregister_out; > > f2fs_proc_root = proc_mkdir("fs/f2fs", NULL); > if (!f2fs_proc_root) { > @@ -1616,6 +1616,7 @@ int __init f2fs_init_sysfs(void) > return 0; > put_kobject: > kobject_put(&f2fs_feat); > +unregister_out: > kset_unregister(&f2fs_kset); > return ret; > } > -- > 2.48.1.362.g079036d154-goog ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [f2fs-dev] [PATCH 1/2] f2fs: don't kobject_put in the error case 2025-01-31 22:24 [PATCH 1/2] f2fs: don't kobject_put in the error case Jaegeuk Kim ` (2 preceding siblings ...) 2025-02-03 18:32 ` Jaegeuk Kim @ 2025-02-06 18:40 ` patchwork-bot+f2fs 3 siblings, 0 replies; 6+ messages in thread From: patchwork-bot+f2fs @ 2025-02-06 18:40 UTC (permalink / raw) To: Jaegeuk Kim; +Cc: linux-kernel, linux-f2fs-devel Hello: This series was applied to jaegeuk/f2fs.git (dev) by Jaegeuk Kim <jaegeuk@kernel.org>: On Fri, 31 Jan 2025 22:24:56 +0000 you wrote: > Fix a wrong kobject_put in the error path. > > Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org> > --- > fs/f2fs/sysfs.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) Here is the summary with links: - [f2fs-dev,1/2] f2fs: don't kobject_put in the error case (no matching commit) - [f2fs-dev,2/2] f2fs: introduce f2fs_base_attr for global sysfs entries https://git.kernel.org/jaegeuk/f2fs/c/21925ede449e You are awesome, thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/patchwork/pwbot.html ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2025-02-06 18:40 UTC | newest] Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2025-01-31 22:24 [PATCH 1/2] f2fs: don't kobject_put in the error case Jaegeuk Kim 2025-01-31 22:24 ` [PATCH 2/2] f2fs: introduce f2fs_base_attr for global sysfs entries Jaegeuk Kim 2025-02-06 2:11 ` [f2fs-dev] " Chao Yu 2025-02-02 14:58 ` [PATCH 1/2] f2fs: don't kobject_put in the error case Markus Elfring 2025-02-03 18:32 ` Jaegeuk Kim 2025-02-06 18:40 ` [f2fs-dev] " patchwork-bot+f2fs
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®