2019-10-30 08:28:53

by zhong jiang

[permalink] [raw]
Subject: [PATCH] fault-inject: use DEFINE_DEBUGFS_ATTRIBUTE to define debugfs fops

It is more clear to use DEFINE_DEBUGFS_ATTRIBUTE to define debugfs file
operation rather than DEFINE_SIMPLE_ATTRIBUTE.

Signed-off-by: zhong jiang <[email protected]>
---
lib/fault-inject.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/fault-inject.c b/lib/fault-inject.c
index 8186ca8..4e61326 100644
--- a/lib/fault-inject.c
+++ b/lib/fault-inject.c
@@ -164,7 +164,7 @@ static int debugfs_ul_get(void *data, u64 *val)
return 0;
}

-DEFINE_SIMPLE_ATTRIBUTE(fops_ul, debugfs_ul_get, debugfs_ul_set, "%llu\n");
+DEFINE_DEBUGFS_ATTRIBUTE(fops_ul, debugfs_ul_get, debugfs_ul_set, "%llu\n");

static void debugfs_create_ul(const char *name, umode_t mode,
struct dentry *parent, unsigned long *value)
@@ -182,7 +182,7 @@ static int debugfs_stacktrace_depth_set(void *data, u64 val)
return 0;
}

-DEFINE_SIMPLE_ATTRIBUTE(fops_stacktrace_depth, debugfs_ul_get,
+DEFINE_DEBUGFS_ATTRIBUTE(fops_stacktrace_depth, debugfs_ul_get,
debugfs_stacktrace_depth_set, "%llu\n");

static void debugfs_create_stacktrace_depth(const char *name, umode_t mode,
--
1.7.12.4


2019-10-30 09:12:06

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH] fault-inject: use DEFINE_DEBUGFS_ATTRIBUTE to define debugfs fops

On Wed, Oct 30, 2019 at 04:22:36PM +0800, zhong jiang wrote:
> It is more clear to use DEFINE_DEBUGFS_ATTRIBUTE to define debugfs file
> operation rather than DEFINE_SIMPLE_ATTRIBUTE.

Why does this matter? What does this change? You are changing how some
of the file reference counting works now, are you sure this is ok?

thanks,

greg k-h

2019-10-30 09:33:06

by zhong jiang

[permalink] [raw]
Subject: Re: [PATCH] fault-inject: use DEFINE_DEBUGFS_ATTRIBUTE to define debugfs fops

On 2019/10/30 17:10, Greg KH wrote:
> On Wed, Oct 30, 2019 at 04:22:36PM +0800, zhong jiang wrote:
>> It is more clear to use DEFINE_DEBUGFS_ATTRIBUTE to define debugfs file
>> operation rather than DEFINE_SIMPLE_ATTRIBUTE.
> Why does this matter? What does this change? You are changing how some
> of the file reference counting works now, are you sure this is ok?
I think that it is more correct to use DEFINE_DEBUGFS_ATTRIBUTE(), since they are debugfs attrs.
It is designed and defined for debugfs fops.

Of course, Use DEFINE_SIMPLE_ATTRIBUTE here to define debugfs attrs is feasible functionally.

Thanks,
zhong jiang
> thanks,
>
> greg k-h
>
> .
>


2019-10-30 10:31:47

by Akinobu Mita

[permalink] [raw]
Subject: Re: [PATCH] fault-inject: use DEFINE_DEBUGFS_ATTRIBUTE to define debugfs fops

2019年10月30日(水) 17:26 zhong jiang <[email protected]>:
>
> It is more clear to use DEFINE_DEBUGFS_ATTRIBUTE to define debugfs file
> operation rather than DEFINE_SIMPLE_ATTRIBUTE.
>
> Signed-off-by: zhong jiang <[email protected]>
> ---
> lib/fault-inject.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/lib/fault-inject.c b/lib/fault-inject.c
> index 8186ca8..4e61326 100644
> --- a/lib/fault-inject.c
> +++ b/lib/fault-inject.c
> @@ -164,7 +164,7 @@ static int debugfs_ul_get(void *data, u64 *val)
> return 0;
> }
>
> -DEFINE_SIMPLE_ATTRIBUTE(fops_ul, debugfs_ul_get, debugfs_ul_set, "%llu\n");
> +DEFINE_DEBUGFS_ATTRIBUTE(fops_ul, debugfs_ul_get, debugfs_ul_set, "%llu\n");
>
> static void debugfs_create_ul(const char *name, umode_t mode,
> struct dentry *parent, unsigned long *value)

Nowadays we have debugfs_create_ulong(), so should we use it instead of
debugfs_create_ul() defined in this file and remove the definision
altogether?

2019-10-30 12:13:44

by zhong jiang

[permalink] [raw]
Subject: Re: [PATCH] fault-inject: use DEFINE_DEBUGFS_ATTRIBUTE to define debugfs fops

On 2019/10/30 18:29, Akinobu Mita wrote:
> 2019年10月30日(水) 17:26 zhong jiang <[email protected]>:
>> It is more clear to use DEFINE_DEBUGFS_ATTRIBUTE to define debugfs file
>> operation rather than DEFINE_SIMPLE_ATTRIBUTE.
>>
>> Signed-off-by: zhong jiang <[email protected]>
>> ---
>> lib/fault-inject.c | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/lib/fault-inject.c b/lib/fault-inject.c
>> index 8186ca8..4e61326 100644
>> --- a/lib/fault-inject.c
>> +++ b/lib/fault-inject.c
>> @@ -164,7 +164,7 @@ static int debugfs_ul_get(void *data, u64 *val)
>> return 0;
>> }
>>
>> -DEFINE_SIMPLE_ATTRIBUTE(fops_ul, debugfs_ul_get, debugfs_ul_set, "%llu\n");
>> +DEFINE_DEBUGFS_ATTRIBUTE(fops_ul, debugfs_ul_get, debugfs_ul_set, "%llu\n");
>>
>> static void debugfs_create_ul(const char *name, umode_t mode,
>> struct dentry *parent, unsigned long *value)
> Nowadays we have debugfs_create_ulong(), so should we use it instead of
> debugfs_create_ul() defined in this file and remove the definision
> altogether?
>
> .
yes, you are right. That is better. I will repost in v2. Thanks

Sincerely,
zhong jiang
>