[PATCH] fs: quota: use group allocation of per-cpu counters API

Kefeng Wang posted 1 patch 1 year, 10 months ago
fs/quota/dquot.c | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
[PATCH] fs: quota: use group allocation of per-cpu counters API
Posted by Kefeng Wang 1 year, 10 months ago
Use group allocation of per-cpu counters api to accelerate
dquot_init() and simplify code.

Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
---
 fs/quota/dquot.c | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/fs/quota/dquot.c b/fs/quota/dquot.c
index dacbee455c03..808544f74e5e 100644
--- a/fs/quota/dquot.c
+++ b/fs/quota/dquot.c
@@ -3016,11 +3016,10 @@ static int __init dquot_init(void)
 	if (!dquot_hash)
 		panic("Cannot create dquot hash table");
 
-	for (i = 0; i < _DQST_DQSTAT_LAST; i++) {
-		ret = percpu_counter_init(&dqstats.counter[i], 0, GFP_KERNEL);
-		if (ret)
-			panic("Cannot create dquot stat counters");
-	}
+	ret = percpu_counter_init_many(dqstats.counter, 0, GFP_KERNEL,
+				       _DQST_DQSTAT_LAST);
+	if (ret)
+		panic("Cannot create dquot stat counters");
 
 	/* Find power-of-two hlist_heads which can fit into allocation */
 	nr_hash = (1UL << order) * PAGE_SIZE / sizeof(struct hlist_head);
-- 
2.41.0
Re: [PATCH] fs: quota: use group allocation of per-cpu counters API
Posted by Jan Kara 1 year, 10 months ago
On Mon 25-03-24 12:12:40, Kefeng Wang wrote:
> Use group allocation of per-cpu counters api to accelerate
> dquot_init() and simplify code.
> 
> Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>

Looks good. I've merged the patch to my tree. Thanks!

								Honza

> ---
>  fs/quota/dquot.c | 9 ++++-----
>  1 file changed, 4 insertions(+), 5 deletions(-)
> 
> diff --git a/fs/quota/dquot.c b/fs/quota/dquot.c
> index dacbee455c03..808544f74e5e 100644
> --- a/fs/quota/dquot.c
> +++ b/fs/quota/dquot.c
> @@ -3016,11 +3016,10 @@ static int __init dquot_init(void)
>  	if (!dquot_hash)
>  		panic("Cannot create dquot hash table");
>  
> -	for (i = 0; i < _DQST_DQSTAT_LAST; i++) {
> -		ret = percpu_counter_init(&dqstats.counter[i], 0, GFP_KERNEL);
> -		if (ret)
> -			panic("Cannot create dquot stat counters");
> -	}
> +	ret = percpu_counter_init_many(dqstats.counter, 0, GFP_KERNEL,
> +				       _DQST_DQSTAT_LAST);
> +	if (ret)
> +		panic("Cannot create dquot stat counters");
>  
>  	/* Find power-of-two hlist_heads which can fit into allocation */
>  	nr_hash = (1UL << order) * PAGE_SIZE / sizeof(struct hlist_head);
> -- 
> 2.41.0
> 
-- 
Jan Kara <jack@suse.com>
SUSE Labs, CR