2019-10-30 13:12:24

by zhong jiang

[permalink] [raw]
Subject: [PATCH v2] fault-inject: Use debugfs_create_ulong() instead of debugfs_create_ul()

debugfs_create_ulong() has implemented the function of debugfs_create_ul()
in lib/fault-inject.c. hence we can replace it.

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

diff --git a/lib/fault-inject.c b/lib/fault-inject.c
index 8186ca8..326fc1d 100644
--- a/lib/fault-inject.c
+++ b/lib/fault-inject.c
@@ -151,10 +151,13 @@ bool should_fail(struct fault_attr *attr, ssize_t size)
EXPORT_SYMBOL_GPL(should_fail);

#ifdef CONFIG_FAULT_INJECTION_DEBUG_FS
+#ifdef CONFIG_FAULT_INJECTION_STACKTRACE_FILTER

-static int debugfs_ul_set(void *data, u64 val)
+static int debugfs_stacktrace_depth_set(void *data, u64 val)
{
- *(unsigned long *)data = val;
+ *(unsigned long *)data =
+ min_t(unsigned long, val, MAX_STACK_TRACE_DEPTH);
+
return 0;
}

@@ -164,26 +167,8 @@ static int debugfs_ul_get(void *data, u64 *val)
return 0;
}

-DEFINE_SIMPLE_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)
-{
- debugfs_create_file(name, mode, parent, value, &fops_ul);
-}
-
-#ifdef CONFIG_FAULT_INJECTION_STACKTRACE_FILTER
-
-static int debugfs_stacktrace_depth_set(void *data, u64 val)
-{
- *(unsigned long *)data =
- min_t(unsigned long, val, MAX_STACK_TRACE_DEPTH);
-
- return 0;
-}
-
-DEFINE_SIMPLE_ATTRIBUTE(fops_stacktrace_depth, debugfs_ul_get,
- debugfs_stacktrace_depth_set, "%llu\n");
+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,
struct dentry *parent,
@@ -204,11 +189,11 @@ struct dentry *fault_create_debugfs_attr(const char *name,
if (IS_ERR(dir))
return dir;

- debugfs_create_ul("probability", mode, dir, &attr->probability);
- debugfs_create_ul("interval", mode, dir, &attr->interval);
+ debugfs_create_ulong("probability", mode, dir, &attr->probability);
+ debugfs_create_ulong("interval", mode, dir, &attr->interval);
debugfs_create_atomic_t("times", mode, dir, &attr->times);
debugfs_create_atomic_t("space", mode, dir, &attr->space);
- debugfs_create_ul("verbose", mode, dir, &attr->verbose);
+ debugfs_create_ulong("verbose", mode, dir, &attr->verbose);
debugfs_create_u32("verbose_ratelimit_interval_ms", mode, dir,
&attr->ratelimit_state.interval);
debugfs_create_u32("verbose_ratelimit_burst", mode, dir,
@@ -218,10 +203,10 @@ struct dentry *fault_create_debugfs_attr(const char *name,
#ifdef CONFIG_FAULT_INJECTION_STACKTRACE_FILTER
debugfs_create_stacktrace_depth("stacktrace-depth", mode, dir,
&attr->stacktrace_depth);
- debugfs_create_ul("require-start", mode, dir, &attr->require_start);
- debugfs_create_ul("require-end", mode, dir, &attr->require_end);
- debugfs_create_ul("reject-start", mode, dir, &attr->reject_start);
- debugfs_create_ul("reject-end", mode, dir, &attr->reject_end);
+ debugfs_create_ulong("require-start", mode, dir, &attr->require_start);
+ debugfs_create_ulong("require-end", mode, dir, &attr->require_end);
+ debugfs_create_ulong("reject-start", mode, dir, &attr->reject_start);
+ debugfs_create_ulong("reject-end", mode, dir, &attr->reject_end);
#endif /* CONFIG_FAULT_INJECTION_STACKTRACE_FILTER */

attr->dname = dget(dir);
--
1.7.12.4


2019-10-30 13:41:59

by Akinobu Mita

[permalink] [raw]
Subject: Re: [PATCH v2] fault-inject: Use debugfs_create_ulong() instead of debugfs_create_ul()

2019年10月30日(水) 22:10 zhong jiang <[email protected]>:
>
> debugfs_create_ulong() has implemented the function of debugfs_create_ul()
> in lib/fault-inject.c. hence we can replace it.
>
> Signed-off-by: zhong jiang <[email protected]>
> ---
> lib/fault-inject.c | 43 ++++++++++++++-----------------------------
> 1 file changed, 14 insertions(+), 29 deletions(-)
>
> diff --git a/lib/fault-inject.c b/lib/fault-inject.c
> index 8186ca8..326fc1d 100644
> --- a/lib/fault-inject.c
> +++ b/lib/fault-inject.c
> @@ -151,10 +151,13 @@ bool should_fail(struct fault_attr *attr, ssize_t size)
> EXPORT_SYMBOL_GPL(should_fail);
>
> #ifdef CONFIG_FAULT_INJECTION_DEBUG_FS
> +#ifdef CONFIG_FAULT_INJECTION_STACKTRACE_FILTER
>
> -static int debugfs_ul_set(void *data, u64 val)
> +static int debugfs_stacktrace_depth_set(void *data, u64 val)
> {
> - *(unsigned long *)data = val;
> + *(unsigned long *)data =
> + min_t(unsigned long, val, MAX_STACK_TRACE_DEPTH);
> +
> return 0;
> }
>
> @@ -164,26 +167,8 @@ static int debugfs_ul_get(void *data, u64 *val)
> return 0;
> }
>
> -DEFINE_SIMPLE_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)
> -{
> - debugfs_create_file(name, mode, parent, value, &fops_ul);
> -}
> -
> -#ifdef CONFIG_FAULT_INJECTION_STACKTRACE_FILTER
> -
> -static int debugfs_stacktrace_depth_set(void *data, u64 val)
> -{
> - *(unsigned long *)data =
> - min_t(unsigned long, val, MAX_STACK_TRACE_DEPTH);
> -
> - return 0;
> -}
> -
> -DEFINE_SIMPLE_ATTRIBUTE(fops_stacktrace_depth, debugfs_ul_get,
> - debugfs_stacktrace_depth_set, "%llu\n");
> +DEFINE_DEBUGFS_ATTRIBUTE(fops_stacktrace_depth, debugfs_ul_get,
> + debugfs_stacktrace_depth_set, "%llu\n");
>

The commit message doesn't describe the s/SIMPLE/DEBUGFS/ change
for fops_stacktrace_depth.

It is better to prepare another patch and I think debugfs_create_file()
in debugfs_create_stacktrace_depth() can now be replaced by
debugfs_create_file_unsafe().

2019-10-31 01:52:04

by zhong jiang

[permalink] [raw]
Subject: Re: [PATCH v2] fault-inject: Use debugfs_create_ulong() instead of debugfs_create_ul()

On 2019/10/30 21:39, Akinobu Mita wrote:
> 2019年10月30日(水) 22:10 zhong jiang <[email protected]>:
>> debugfs_create_ulong() has implemented the function of debugfs_create_ul()
>> in lib/fault-inject.c. hence we can replace it.
>>
>> Signed-off-by: zhong jiang <[email protected]>
>> ---
>> lib/fault-inject.c | 43 ++++++++++++++-----------------------------
>> 1 file changed, 14 insertions(+), 29 deletions(-)
>>
>> diff --git a/lib/fault-inject.c b/lib/fault-inject.c
>> index 8186ca8..326fc1d 100644
>> --- a/lib/fault-inject.c
>> +++ b/lib/fault-inject.c
>> @@ -151,10 +151,13 @@ bool should_fail(struct fault_attr *attr, ssize_t size)
>> EXPORT_SYMBOL_GPL(should_fail);
>>
>> #ifdef CONFIG_FAULT_INJECTION_DEBUG_FS
>> +#ifdef CONFIG_FAULT_INJECTION_STACKTRACE_FILTER
>>
>> -static int debugfs_ul_set(void *data, u64 val)
>> +static int debugfs_stacktrace_depth_set(void *data, u64 val)
>> {
>> - *(unsigned long *)data = val;
>> + *(unsigned long *)data =
>> + min_t(unsigned long, val, MAX_STACK_TRACE_DEPTH);
>> +
>> return 0;
>> }
>>
>> @@ -164,26 +167,8 @@ static int debugfs_ul_get(void *data, u64 *val)
>> return 0;
>> }
>>
>> -DEFINE_SIMPLE_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)
>> -{
>> - debugfs_create_file(name, mode, parent, value, &fops_ul);
>> -}
>> -
>> -#ifdef CONFIG_FAULT_INJECTION_STACKTRACE_FILTER
>> -
>> -static int debugfs_stacktrace_depth_set(void *data, u64 val)
>> -{
>> - *(unsigned long *)data =
>> - min_t(unsigned long, val, MAX_STACK_TRACE_DEPTH);
>> -
>> - return 0;
>> -}
>> -
>> -DEFINE_SIMPLE_ATTRIBUTE(fops_stacktrace_depth, debugfs_ul_get,
>> - debugfs_stacktrace_depth_set, "%llu\n");
>> +DEFINE_DEBUGFS_ATTRIBUTE(fops_stacktrace_depth, debugfs_ul_get,
>> + debugfs_stacktrace_depth_set, "%llu\n");
>>
> The commit message doesn't describe the s/SIMPLE/DEBUGFS/ change
> for fops_stacktrace_depth.
>
> It is better to prepare another patch and I think debugfs_create_file()
> in debugfs_create_stacktrace_depth() can now be replaced by
> debugfs_create_file_unsafe().
>
> .
Thanks for you suggestion. I will repost as your proposal.

Sincerely,
zhong jiang
>