| From 8e06cf626e2e20986e75b3d66aa0718197a74718 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Mon, 22 Sep 2025 23:22:22 +0530 |
| Subject: gfs2/sysfs: Replace sprintf/snprintf with sysfs_emit |
| |
| From: Utkarsh Singh <utkarsh.singh.em@gmail.com> |
| |
| [ Upstream commit 02c03021e2fced59b3b5b200fdd00018725d4ee2 ] |
| |
| Documentation/filesystems/sysfs.rst mentions that show() should only |
| use sysfs_emit() or sysfs_emit_at() when formatting values returned |
| to user space. This patch updates the GFS2 sysfs interface accordingly. |
| |
| It replaces uses of sprintf() and snprintf() in all *_show() functions |
| with sysfs_emit() to align with current kernel sysfs API best practices. |
| It also updates the TUNE_ATTR_2 macro to use sysfs_emit() instead of |
| snprintf(). |
| |
| Signed-off-by: Utkarsh Singh <utkarsh.singh.em@gmail.com> |
| Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com> |
| Stable-dep-of: da6f5bbc2e79 ("gfs2: fix memory leaks in gfs2_fill_super error path") |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| fs/gfs2/sys.c | 30 +++++++++++++++--------------- |
| 1 file changed, 15 insertions(+), 15 deletions(-) |
| |
| diff --git a/fs/gfs2/sys.c b/fs/gfs2/sys.c |
| index c3c8842920d24..1213f97419f64 100644 |
| --- a/fs/gfs2/sys.c |
| +++ b/fs/gfs2/sys.c |
| @@ -59,7 +59,7 @@ static struct kset *gfs2_kset; |
| |
| static ssize_t id_show(struct gfs2_sbd *sdp, char *buf) |
| { |
| - return snprintf(buf, PAGE_SIZE, "%u:%u\n", |
| + return sysfs_emit(buf, "%u:%u\n", |
| MAJOR(sdp->sd_vfs->s_dev), MINOR(sdp->sd_vfs->s_dev)); |
| } |
| |
| @@ -68,7 +68,7 @@ static ssize_t status_show(struct gfs2_sbd *sdp, char *buf) |
| unsigned long f = sdp->sd_flags; |
| ssize_t s; |
| |
| - s = snprintf(buf, PAGE_SIZE, |
| + s = sysfs_emit(buf, |
| "Journal Checked: %d\n" |
| "Journal Live: %d\n" |
| "Journal ID: %d\n" |
| @@ -140,7 +140,7 @@ static ssize_t status_show(struct gfs2_sbd *sdp, char *buf) |
| |
| static ssize_t fsname_show(struct gfs2_sbd *sdp, char *buf) |
| { |
| - return snprintf(buf, PAGE_SIZE, "%s\n", sdp->sd_fsname); |
| + return sysfs_emit(buf, "%s\n", sdp->sd_fsname); |
| } |
| |
| static ssize_t uuid_show(struct gfs2_sbd *sdp, char *buf) |
| @@ -150,7 +150,7 @@ static ssize_t uuid_show(struct gfs2_sbd *sdp, char *buf) |
| buf[0] = '\0'; |
| if (uuid_is_null(&s->s_uuid)) |
| return 0; |
| - return snprintf(buf, PAGE_SIZE, "%pUB\n", &s->s_uuid); |
| + return sysfs_emit(buf, "%pUB\n", &s->s_uuid); |
| } |
| |
| static ssize_t freeze_show(struct gfs2_sbd *sdp, char *buf) |
| @@ -158,7 +158,7 @@ static ssize_t freeze_show(struct gfs2_sbd *sdp, char *buf) |
| struct super_block *sb = sdp->sd_vfs; |
| int frozen = (sb->s_writers.frozen == SB_UNFROZEN) ? 0 : 1; |
| |
| - return snprintf(buf, PAGE_SIZE, "%d\n", frozen); |
| + return sysfs_emit(buf, "%d\n", frozen); |
| } |
| |
| static ssize_t freeze_store(struct gfs2_sbd *sdp, const char *buf, size_t len) |
| @@ -194,7 +194,7 @@ static ssize_t freeze_store(struct gfs2_sbd *sdp, const char *buf, size_t len) |
| static ssize_t withdraw_show(struct gfs2_sbd *sdp, char *buf) |
| { |
| unsigned int b = gfs2_withdrawing_or_withdrawn(sdp); |
| - return snprintf(buf, PAGE_SIZE, "%u\n", b); |
| + return sysfs_emit(buf, "%u\n", b); |
| } |
| |
| static ssize_t withdraw_store(struct gfs2_sbd *sdp, const char *buf, size_t len) |
| @@ -397,7 +397,7 @@ static struct kobj_type gfs2_ktype = { |
| static ssize_t proto_name_show(struct gfs2_sbd *sdp, char *buf) |
| { |
| const struct lm_lockops *ops = sdp->sd_lockstruct.ls_ops; |
| - return sprintf(buf, "%s\n", ops->lm_proto_name); |
| + return sysfs_emit(buf, "%s\n", ops->lm_proto_name); |
| } |
| |
| static ssize_t block_show(struct gfs2_sbd *sdp, char *buf) |
| @@ -408,7 +408,7 @@ static ssize_t block_show(struct gfs2_sbd *sdp, char *buf) |
| |
| if (test_bit(DFL_BLOCK_LOCKS, &ls->ls_recover_flags)) |
| val = 1; |
| - ret = sprintf(buf, "%d\n", val); |
| + ret = sysfs_emit(buf, "%d\n", val); |
| return ret; |
| } |
| |
| @@ -459,7 +459,7 @@ static ssize_t wdack_store(struct gfs2_sbd *sdp, const char *buf, size_t len) |
| static ssize_t lkfirst_show(struct gfs2_sbd *sdp, char *buf) |
| { |
| struct lm_lockstruct *ls = &sdp->sd_lockstruct; |
| - return sprintf(buf, "%d\n", ls->ls_first); |
| + return sysfs_emit(buf, "%d\n", ls->ls_first); |
| } |
| |
| static ssize_t lkfirst_store(struct gfs2_sbd *sdp, const char *buf, size_t len) |
| @@ -492,7 +492,7 @@ static ssize_t lkfirst_store(struct gfs2_sbd *sdp, const char *buf, size_t len) |
| static ssize_t first_done_show(struct gfs2_sbd *sdp, char *buf) |
| { |
| struct lm_lockstruct *ls = &sdp->sd_lockstruct; |
| - return sprintf(buf, "%d\n", !!test_bit(DFL_FIRST_MOUNT_DONE, &ls->ls_recover_flags)); |
| + return sysfs_emit(buf, "%d\n", !!test_bit(DFL_FIRST_MOUNT_DONE, &ls->ls_recover_flags)); |
| } |
| |
| int gfs2_recover_set(struct gfs2_sbd *sdp, unsigned jid) |
| @@ -550,18 +550,18 @@ static ssize_t recover_store(struct gfs2_sbd *sdp, const char *buf, size_t len) |
| static ssize_t recover_done_show(struct gfs2_sbd *sdp, char *buf) |
| { |
| struct lm_lockstruct *ls = &sdp->sd_lockstruct; |
| - return sprintf(buf, "%d\n", ls->ls_recover_jid_done); |
| + return sysfs_emit(buf, "%d\n", ls->ls_recover_jid_done); |
| } |
| |
| static ssize_t recover_status_show(struct gfs2_sbd *sdp, char *buf) |
| { |
| struct lm_lockstruct *ls = &sdp->sd_lockstruct; |
| - return sprintf(buf, "%d\n", ls->ls_recover_jid_status); |
| + return sysfs_emit(buf, "%d\n", ls->ls_recover_jid_status); |
| } |
| |
| static ssize_t jid_show(struct gfs2_sbd *sdp, char *buf) |
| { |
| - return sprintf(buf, "%d\n", sdp->sd_lockstruct.ls_jid); |
| + return sysfs_emit(buf, "%d\n", sdp->sd_lockstruct.ls_jid); |
| } |
| |
| static ssize_t jid_store(struct gfs2_sbd *sdp, const char *buf, size_t len) |
| @@ -626,7 +626,7 @@ static struct attribute *lock_module_attrs[] = { |
| |
| static ssize_t quota_scale_show(struct gfs2_sbd *sdp, char *buf) |
| { |
| - return snprintf(buf, PAGE_SIZE, "%u %u\n", |
| + return sysfs_emit(buf, "%u %u\n", |
| sdp->sd_tune.gt_quota_scale_num, |
| sdp->sd_tune.gt_quota_scale_den); |
| } |
| @@ -679,7 +679,7 @@ static struct gfs2_attr tune_attr_##name = __ATTR(name, 0644, show, store) |
| #define TUNE_ATTR_2(name, store) \ |
| static ssize_t name##_show(struct gfs2_sbd *sdp, char *buf) \ |
| { \ |
| - return snprintf(buf, PAGE_SIZE, "%u\n", sdp->sd_tune.gt_##name); \ |
| + return sysfs_emit(buf, "%u\n", sdp->sd_tune.gt_##name); \ |
| } \ |
| TUNE_ATTR_3(name, name##_show, store) |
| |
| -- |
| 2.53.0 |
| |