Re: [PATCH] xfs: make kobj_type structures constant

From: Darrick J. Wong
Date: Thu Feb 09 2023 - 21:57:54 EST


On Thu, Feb 09, 2023 at 03:16:43AM +0000, Thomas Weißschuh wrote:
> Since commit ee6d3dd4ed48 ("driver core: make kobj_type constant.")
> the driver core allows the usage of const struct kobj_type.
>
> Take advantage of this to constify the structure definitions to prevent
> modification at runtime.
>
> Signed-off-by: Thomas Weißschuh <linux@xxxxxxxxxxxxxx>

LGTM,
Reviewed-by: Darrick J. Wong <djwong@xxxxxxxxxx>

--D

> ---
> fs/xfs/xfs_error.c | 2 +-
> fs/xfs/xfs_sysfs.c | 12 ++++++------
> fs/xfs/xfs_sysfs.h | 10 +++++-----
> 3 files changed, 12 insertions(+), 12 deletions(-)
>
> diff --git a/fs/xfs/xfs_error.c b/fs/xfs/xfs_error.c
> index ae082808cfed..b2cbbba3e15a 100644
> --- a/fs/xfs/xfs_error.c
> +++ b/fs/xfs/xfs_error.c
> @@ -228,7 +228,7 @@ static struct attribute *xfs_errortag_attrs[] = {
> };
> ATTRIBUTE_GROUPS(xfs_errortag);
>
> -static struct kobj_type xfs_errortag_ktype = {
> +static const struct kobj_type xfs_errortag_ktype = {
> .release = xfs_sysfs_release,
> .sysfs_ops = &xfs_errortag_sysfs_ops,
> .default_groups = xfs_errortag_groups,
> diff --git a/fs/xfs/xfs_sysfs.c b/fs/xfs/xfs_sysfs.c
> index f7faf6e70d7f..a3c6b1548723 100644
> --- a/fs/xfs/xfs_sysfs.c
> +++ b/fs/xfs/xfs_sysfs.c
> @@ -69,7 +69,7 @@ static struct attribute *xfs_mp_attrs[] = {
> };
> ATTRIBUTE_GROUPS(xfs_mp);
>
> -struct kobj_type xfs_mp_ktype = {
> +const struct kobj_type xfs_mp_ktype = {
> .release = xfs_sysfs_release,
> .sysfs_ops = &xfs_sysfs_ops,
> .default_groups = xfs_mp_groups,
> @@ -266,7 +266,7 @@ static struct attribute *xfs_dbg_attrs[] = {
> };
> ATTRIBUTE_GROUPS(xfs_dbg);
>
> -struct kobj_type xfs_dbg_ktype = {
> +const struct kobj_type xfs_dbg_ktype = {
> .release = xfs_sysfs_release,
> .sysfs_ops = &xfs_sysfs_ops,
> .default_groups = xfs_dbg_groups,
> @@ -324,7 +324,7 @@ static struct attribute *xfs_stats_attrs[] = {
> };
> ATTRIBUTE_GROUPS(xfs_stats);
>
> -struct kobj_type xfs_stats_ktype = {
> +const struct kobj_type xfs_stats_ktype = {
> .release = xfs_sysfs_release,
> .sysfs_ops = &xfs_sysfs_ops,
> .default_groups = xfs_stats_groups,
> @@ -410,7 +410,7 @@ static struct attribute *xfs_log_attrs[] = {
> };
> ATTRIBUTE_GROUPS(xfs_log);
>
> -struct kobj_type xfs_log_ktype = {
> +const struct kobj_type xfs_log_ktype = {
> .release = xfs_sysfs_release,
> .sysfs_ops = &xfs_sysfs_ops,
> .default_groups = xfs_log_groups,
> @@ -564,13 +564,13 @@ static struct attribute *xfs_error_attrs[] = {
> };
> ATTRIBUTE_GROUPS(xfs_error);
>
> -static struct kobj_type xfs_error_cfg_ktype = {
> +static const struct kobj_type xfs_error_cfg_ktype = {
> .release = xfs_sysfs_release,
> .sysfs_ops = &xfs_sysfs_ops,
> .default_groups = xfs_error_groups,
> };
>
> -static struct kobj_type xfs_error_ktype = {
> +static const struct kobj_type xfs_error_ktype = {
> .release = xfs_sysfs_release,
> .sysfs_ops = &xfs_sysfs_ops,
> };
> diff --git a/fs/xfs/xfs_sysfs.h b/fs/xfs/xfs_sysfs.h
> index 513095e353a5..148893ebfdef 100644
> --- a/fs/xfs/xfs_sysfs.h
> +++ b/fs/xfs/xfs_sysfs.h
> @@ -7,10 +7,10 @@
> #ifndef __XFS_SYSFS_H__
> #define __XFS_SYSFS_H__
>
> -extern struct kobj_type xfs_mp_ktype; /* xfs_mount */
> -extern struct kobj_type xfs_dbg_ktype; /* debug */
> -extern struct kobj_type xfs_log_ktype; /* xlog */
> -extern struct kobj_type xfs_stats_ktype; /* stats */
> +extern const struct kobj_type xfs_mp_ktype; /* xfs_mount */
> +extern const struct kobj_type xfs_dbg_ktype; /* debug */
> +extern const struct kobj_type xfs_log_ktype; /* xlog */
> +extern const struct kobj_type xfs_stats_ktype; /* stats */
>
> static inline struct xfs_kobj *
> to_kobj(struct kobject *kobject)
> @@ -28,7 +28,7 @@ xfs_sysfs_release(struct kobject *kobject)
> static inline int
> xfs_sysfs_init(
> struct xfs_kobj *kobj,
> - struct kobj_type *ktype,
> + const struct kobj_type *ktype,
> struct xfs_kobj *parent_kobj,
> const char *name)
> {
>
> ---
> base-commit: 0983f6bf2bfc0789b51ddf7315f644ff4da50acb
> change-id: 20230209-kobj_type-xfs-c1670289be86
>
> Best regards,
> --
> Thomas Weißschuh <linux@xxxxxxxxxxxxxx>
>