2017-08-11 04:44:02

by Byungchul Park

[permalink] [raw]
Subject: [PATCH v4] bcache: Don't reinvent the wheel but use existing llist API

Although llist provides proper APIs, they are not used. Make them used.

Signed-off-by: Byungchul Park <[email protected]>
Acked-by: Coly Li <[email protected]>
---
drivers/md/bcache/closure.c | 15 ++-------------
1 file changed, 2 insertions(+), 13 deletions(-)

diff --git a/drivers/md/bcache/closure.c b/drivers/md/bcache/closure.c
index 864e673..7d5286b 100644
--- a/drivers/md/bcache/closure.c
+++ b/drivers/md/bcache/closure.c
@@ -70,21 +70,10 @@ void __closure_wake_up(struct closure_waitlist *wait_list)
list = llist_del_all(&wait_list->list);

/* We first reverse the list to preserve FIFO ordering and fairness */
-
- while (list) {
- struct llist_node *t = list;
- list = llist_next(list);
-
- t->next = reverse;
- reverse = t;
- }
+ reverse = llist_reverse_order(list);

/* Then do the wakeups */
-
- while (reverse) {
- cl = container_of(reverse, struct closure, list);
- reverse = llist_next(reverse);
-
+ llist_for_each_entry(cl, reverse, list) {
closure_set_waiting(cl, 0);
closure_sub(cl, CLOSURE_WAITING + 1);
}
--
1.9.1


2017-08-18 01:24:31

by Byungchul Park

[permalink] [raw]
Subject: Re: [PATCH v4] bcache: Don't reinvent the wheel but use existing llist API

On Fri, Aug 11, 2017 at 01:42:23PM +0900, Byungchul Park wrote:
> Although llist provides proper APIs, they are not used. Make them used.

Any opinions about this?

>
> Signed-off-by: Byungchul Park <[email protected]>
> Acked-by: Coly Li <[email protected]>
> ---
> drivers/md/bcache/closure.c | 15 ++-------------
> 1 file changed, 2 insertions(+), 13 deletions(-)
>
> diff --git a/drivers/md/bcache/closure.c b/drivers/md/bcache/closure.c
> index 864e673..7d5286b 100644
> --- a/drivers/md/bcache/closure.c
> +++ b/drivers/md/bcache/closure.c
> @@ -70,21 +70,10 @@ void __closure_wake_up(struct closure_waitlist *wait_list)
> list = llist_del_all(&wait_list->list);
>
> /* We first reverse the list to preserve FIFO ordering and fairness */
> -
> - while (list) {
> - struct llist_node *t = list;
> - list = llist_next(list);
> -
> - t->next = reverse;
> - reverse = t;
> - }
> + reverse = llist_reverse_order(list);
>
> /* Then do the wakeups */
> -
> - while (reverse) {
> - cl = container_of(reverse, struct closure, list);
> - reverse = llist_next(reverse);
> -
> + llist_for_each_entry(cl, reverse, list) {
> closure_set_waiting(cl, 0);
> closure_sub(cl, CLOSURE_WAITING + 1);
> }
> --
> 1.9.1

2017-08-18 06:04:35

by Coly Li

[permalink] [raw]
Subject: Re: [PATCH v4] bcache: Don't reinvent the wheel but use existing llist API

On 2017/8/18 上午9:24, Byungchul Park wrote:
> On Fri, Aug 11, 2017 at 01:42:23PM +0900, Byungchul Park wrote:
>> Although llist provides proper APIs, they are not used. Make them used.
>
> Any opinions about this?
>

The patch is good. If Eric has no time, I will take care of it later.

Thanks.

Coly

>>
>> Signed-off-by: Byungchul Park <[email protected]>
>> Acked-by: Coly Li <[email protected]>
>> ---
>> drivers/md/bcache/closure.c | 15 ++-------------
>> 1 file changed, 2 insertions(+), 13 deletions(-)
>>
>> diff --git a/drivers/md/bcache/closure.c b/drivers/md/bcache/closure.c
>> index 864e673..7d5286b 100644
>> --- a/drivers/md/bcache/closure.c
>> +++ b/drivers/md/bcache/closure.c
>> @@ -70,21 +70,10 @@ void __closure_wake_up(struct closure_waitlist *wait_list)
>> list = llist_del_all(&wait_list->list);
>>
>> /* We first reverse the list to preserve FIFO ordering and fairness */
>> -
>> - while (list) {
>> - struct llist_node *t = list;
>> - list = llist_next(list);
>> -
>> - t->next = reverse;
>> - reverse = t;
>> - }
>> + reverse = llist_reverse_order(list);
>>
>> /* Then do the wakeups */
>> -
>> - while (reverse) {
>> - cl = container_of(reverse, struct closure, list);
>> - reverse = llist_next(reverse);
>> -
>> + llist_for_each_entry(cl, reverse, list) {
>> closure_set_waiting(cl, 0);
>> closure_sub(cl, CLOSURE_WAITING + 1);
>> }
>> --
>> 1.9.1

2017-08-18 06:10:13

by Byungchul Park

[permalink] [raw]
Subject: Re: [PATCH v4] bcache: Don't reinvent the wheel but use existing llist API

On Fri, Aug 18, 2017 at 02:04:20PM +0800, Coly Li wrote:
> On 2017/8/18 上午9:24, Byungchul Park wrote:
> > On Fri, Aug 11, 2017 at 01:42:23PM +0900, Byungchul Park wrote:
> >> Although llist provides proper APIs, they are not used. Make them used.
> >
> > Any opinions about this?
> >
>
> The patch is good. If Eric has no time, I will take care of it later.

Hi, Coly

Thanks a lot. :)

2017-09-05 02:37:41

by Byungchul Park

[permalink] [raw]
Subject: Re: [PATCH v4] bcache: Don't reinvent the wheel but use existing llist API

On Fri, Aug 18, 2017 at 02:04:20PM +0800, Coly Li wrote:
> On 2017/8/18 上午9:24, Byungchul Park wrote:
> > On Fri, Aug 11, 2017 at 01:42:23PM +0900, Byungchul Park wrote:
> >> Although llist provides proper APIs, they are not used. Make them used.
> >
> > Any opinions about this?
> >
>
> The patch is good. If Eric has no time, I will take care of it later.

I would be appriciated if you take this at this window :)

> Thanks.
>
> Coly
>
> >>
> >> Signed-off-by: Byungchul Park <[email protected]>
> >> Acked-by: Coly Li <[email protected]>
> >> ---
> >> drivers/md/bcache/closure.c | 15 ++-------------
> >> 1 file changed, 2 insertions(+), 13 deletions(-)
> >>
> >> diff --git a/drivers/md/bcache/closure.c b/drivers/md/bcache/closure.c
> >> index 864e673..7d5286b 100644
> >> --- a/drivers/md/bcache/closure.c
> >> +++ b/drivers/md/bcache/closure.c
> >> @@ -70,21 +70,10 @@ void __closure_wake_up(struct closure_waitlist *wait_list)
> >> list = llist_del_all(&wait_list->list);
> >>
> >> /* We first reverse the list to preserve FIFO ordering and fairness */
> >> -
> >> - while (list) {
> >> - struct llist_node *t = list;
> >> - list = llist_next(list);
> >> -
> >> - t->next = reverse;
> >> - reverse = t;
> >> - }
> >> + reverse = llist_reverse_order(list);
> >>
> >> /* Then do the wakeups */
> >> -
> >> - while (reverse) {
> >> - cl = container_of(reverse, struct closure, list);
> >> - reverse = llist_next(reverse);
> >> -
> >> + llist_for_each_entry(cl, reverse, list) {
> >> closure_set_waiting(cl, 0);
> >> closure_sub(cl, CLOSURE_WAITING + 1);
> >> }
> >> --
> >> 1.9.1

2017-09-05 02:54:51

by Coly Li

[permalink] [raw]
Subject: Re: [PATCH v4] bcache: Don't reinvent the wheel but use existing llist API

On 2017/9/5 上午10:37, Byungchul Park wrote:
> On Fri, Aug 18, 2017 at 02:04:20PM +0800, Coly Li wrote:
>> On 2017/8/18 上午9:24, Byungchul Park wrote:
>>> On Fri, Aug 11, 2017 at 01:42:23PM +0900, Byungchul Park wrote:
>>>> Although llist provides proper APIs, they are not used. Make them used.
>>>
>>> Any opinions about this?
>>>
>>
>> The patch is good. If Eric has no time, I will take care of it later.
>
> I would be appriciated if you take this at this window :)

Sure, I am preparing a patch list to block maintainers which we are
missed in last merge window, your patch is in the list.

It will be in one or two days from my side.

Coly

>>>>
>>>> Signed-off-by: Byungchul Park <[email protected]>
>>>> Acked-by: Coly Li <[email protected]>
>>>> ---
>>>> drivers/md/bcache/closure.c | 15 ++-------------
>>>> 1 file changed, 2 insertions(+), 13 deletions(-)
>>>>
>>>> diff --git a/drivers/md/bcache/closure.c b/drivers/md/bcache/closure.c
>>>> index 864e673..7d5286b 100644
>>>> --- a/drivers/md/bcache/closure.c
>>>> +++ b/drivers/md/bcache/closure.c
>>>> @@ -70,21 +70,10 @@ void __closure_wake_up(struct closure_waitlist *wait_list)
>>>> list = llist_del_all(&wait_list->list);
>>>>
>>>> /* We first reverse the list to preserve FIFO ordering and fairness */
>>>> -
>>>> - while (list) {
>>>> - struct llist_node *t = list;
>>>> - list = llist_next(list);
>>>> -
>>>> - t->next = reverse;
>>>> - reverse = t;
>>>> - }
>>>> + reverse = llist_reverse_order(list);
>>>>
>>>> /* Then do the wakeups */
>>>> -
>>>> - while (reverse) {
>>>> - cl = container_of(reverse, struct closure, list);
>>>> - reverse = llist_next(reverse);
>>>> -
>>>> + llist_for_each_entry(cl, reverse, list) {
>>>> closure_set_waiting(cl, 0);
>>>> closure_sub(cl, CLOSURE_WAITING + 1);
>>>> }
>>>> --
>>>> 1.9.1
> --
> To unsubscribe from this list: send the line "unsubscribe linux-raid" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>