* [PATCH 1/3] raid: replace list_for_each_continue_rcu with new interface
[not found] <502CB924.10200@linux.vnet.ibm.com>
@ 2012-08-17 4:33 ` Michael Wang
2012-08-20 23:41 ` Paul E. McKenney
2012-08-24 0:51 ` Michael Wang
0 siblings, 2 replies; 7+ messages in thread
From: Michael Wang @ 2012-08-17 4:33 UTC (permalink / raw)
To: LKML, linux-raid; +Cc: neilb, paulmck@linux.vnet.ibm.com
From: Michael Wang <wangyun@linux.vnet.ibm.com>
This patch replaces list_for_each_continue_rcu() with
list_for_each_entry_continue_rcu() to save a few lines
of code and allow removing list_for_each_continue_rcu().
Signed-off-by: Michael Wang <wangyun@linux.vnet.ibm.com>
---
drivers/md/bitmap.c | 9 +++------
1 files changed, 3 insertions(+), 6 deletions(-)
diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c
index 15dbe03..b160828 100644
--- a/drivers/md/bitmap.c
+++ b/drivers/md/bitmap.c
@@ -163,20 +163,17 @@ static struct md_rdev *next_active_rdev(struct md_rdev *rdev, struct mddev *mdde
* As devices are only added or removed when raid_disk is < 0 and
* nr_pending is 0 and In_sync is clear, the entries we return will
* still be in the same position on the list when we re-enter
- * list_for_each_continue_rcu.
+ * list_for_each_entry_continue_rcu.
*/
- struct list_head *pos;
rcu_read_lock();
if (rdev == NULL)
/* start at the beginning */
- pos = &mddev->disks;
+ rdev = list_entry_rcu(&mddev->disks, struct md_rdev, same_set);
else {
/* release the previous rdev and start from there. */
rdev_dec_pending(rdev, mddev);
- pos = &rdev->same_set;
}
- list_for_each_continue_rcu(pos, &mddev->disks) {
- rdev = list_entry(pos, struct md_rdev, same_set);
+ list_for_each_entry_continue_rcu(rdev, &mddev->disks, same_set) {
if (rdev->raid_disk >= 0 &&
!test_bit(Faulty, &rdev->flags)) {
/* this is a usable devices */
--
1.7.4.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 1/3] raid: replace list_for_each_continue_rcu with new interface
2012-08-17 4:33 ` [PATCH 1/3] raid: replace list_for_each_continue_rcu with new interface Michael Wang
@ 2012-08-20 23:41 ` Paul E. McKenney
2012-08-24 0:51 ` Michael Wang
1 sibling, 0 replies; 7+ messages in thread
From: Paul E. McKenney @ 2012-08-20 23:41 UTC (permalink / raw)
To: Michael Wang; +Cc: LKML, linux-raid, neilb
On Fri, Aug 17, 2012 at 12:33:29PM +0800, Michael Wang wrote:
> From: Michael Wang <wangyun@linux.vnet.ibm.com>
>
> This patch replaces list_for_each_continue_rcu() with
> list_for_each_entry_continue_rcu() to save a few lines
> of code and allow removing list_for_each_continue_rcu().
>
> Signed-off-by: Michael Wang <wangyun@linux.vnet.ibm.com>
Getting rid of list_for_each_continue_rcu() would indeed be a good thing!
Reviewed-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
> ---
> drivers/md/bitmap.c | 9 +++------
> 1 files changed, 3 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c
> index 15dbe03..b160828 100644
> --- a/drivers/md/bitmap.c
> +++ b/drivers/md/bitmap.c
> @@ -163,20 +163,17 @@ static struct md_rdev *next_active_rdev(struct md_rdev *rdev, struct mddev *mdde
> * As devices are only added or removed when raid_disk is < 0 and
> * nr_pending is 0 and In_sync is clear, the entries we return will
> * still be in the same position on the list when we re-enter
> - * list_for_each_continue_rcu.
> + * list_for_each_entry_continue_rcu.
> */
> - struct list_head *pos;
> rcu_read_lock();
> if (rdev == NULL)
> /* start at the beginning */
> - pos = &mddev->disks;
> + rdev = list_entry_rcu(&mddev->disks, struct md_rdev, same_set);
> else {
> /* release the previous rdev and start from there. */
> rdev_dec_pending(rdev, mddev);
> - pos = &rdev->same_set;
> }
> - list_for_each_continue_rcu(pos, &mddev->disks) {
> - rdev = list_entry(pos, struct md_rdev, same_set);
> + list_for_each_entry_continue_rcu(rdev, &mddev->disks, same_set) {
> if (rdev->raid_disk >= 0 &&
> !test_bit(Faulty, &rdev->flags)) {
> /* this is a usable devices */
> --
> 1.7.4.1
>
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/3] raid: replace list_for_each_continue_rcu with new interface
2012-08-17 4:33 ` [PATCH 1/3] raid: replace list_for_each_continue_rcu with new interface Michael Wang
2012-08-20 23:41 ` Paul E. McKenney
@ 2012-08-24 0:51 ` Michael Wang
2012-09-10 8:30 ` Michael Wang
1 sibling, 1 reply; 7+ messages in thread
From: Michael Wang @ 2012-08-24 0:51 UTC (permalink / raw)
To: LKML, linux-raid; +Cc: neilb, paulmck@linux.vnet.ibm.com
On 08/17/2012 12:33 PM, Michael Wang wrote:
> From: Michael Wang <wangyun@linux.vnet.ibm.com>
>
> This patch replaces list_for_each_continue_rcu() with
> list_for_each_entry_continue_rcu() to save a few lines
> of code and allow removing list_for_each_continue_rcu().
>
Hi, Neil
Could I get some comments on this patch?
Regards,
Michael Wang
> Signed-off-by: Michael Wang <wangyun@linux.vnet.ibm.com>
> ---
> drivers/md/bitmap.c | 9 +++------
> 1 files changed, 3 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c
> index 15dbe03..b160828 100644
> --- a/drivers/md/bitmap.c
> +++ b/drivers/md/bitmap.c
> @@ -163,20 +163,17 @@ static struct md_rdev *next_active_rdev(struct md_rdev *rdev, struct mddev *mdde
> * As devices are only added or removed when raid_disk is < 0 and
> * nr_pending is 0 and In_sync is clear, the entries we return will
> * still be in the same position on the list when we re-enter
> - * list_for_each_continue_rcu.
> + * list_for_each_entry_continue_rcu.
> */
> - struct list_head *pos;
> rcu_read_lock();
> if (rdev == NULL)
> /* start at the beginning */
> - pos = &mddev->disks;
> + rdev = list_entry_rcu(&mddev->disks, struct md_rdev, same_set);
> else {
> /* release the previous rdev and start from there. */
> rdev_dec_pending(rdev, mddev);
> - pos = &rdev->same_set;
> }
> - list_for_each_continue_rcu(pos, &mddev->disks) {
> - rdev = list_entry(pos, struct md_rdev, same_set);
> + list_for_each_entry_continue_rcu(rdev, &mddev->disks, same_set) {
> if (rdev->raid_disk >= 0 &&
> !test_bit(Faulty, &rdev->flags)) {
> /* this is a usable devices */
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/3] raid: replace list_for_each_continue_rcu with new interface
2012-08-24 0:51 ` Michael Wang
@ 2012-09-10 8:30 ` Michael Wang
2012-09-11 6:21 ` NeilBrown
0 siblings, 1 reply; 7+ messages in thread
From: Michael Wang @ 2012-09-10 8:30 UTC (permalink / raw)
To: LKML, linux-raid; +Cc: neilb, paulmck@linux.vnet.ibm.com
On 08/24/2012 08:51 AM, Michael Wang wrote:
> On 08/17/2012 12:33 PM, Michael Wang wrote:
>> From: Michael Wang <wangyun@linux.vnet.ibm.com>
>>
>> This patch replaces list_for_each_continue_rcu() with
>> list_for_each_entry_continue_rcu() to save a few lines
>> of code and allow removing list_for_each_continue_rcu().
>>
>
> Hi, Neil
>
> Could I get some comments on this patch?
Hi, Neil
Could I get some comments?
And please forgive and warn me if this patch has came to the wrong
place...I get the address from get_maintainer.
Regards,
Michael Wang
>
> Regards,
> Michael Wang
>
>> Signed-off-by: Michael Wang <wangyun@linux.vnet.ibm.com>
>> ---
>> drivers/md/bitmap.c | 9 +++------
>> 1 files changed, 3 insertions(+), 6 deletions(-)
>>
>> diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c
>> index 15dbe03..b160828 100644
>> --- a/drivers/md/bitmap.c
>> +++ b/drivers/md/bitmap.c
>> @@ -163,20 +163,17 @@ static struct md_rdev *next_active_rdev(struct md_rdev *rdev, struct mddev *mdde
>> * As devices are only added or removed when raid_disk is < 0 and
>> * nr_pending is 0 and In_sync is clear, the entries we return will
>> * still be in the same position on the list when we re-enter
>> - * list_for_each_continue_rcu.
>> + * list_for_each_entry_continue_rcu.
>> */
>> - struct list_head *pos;
>> rcu_read_lock();
>> if (rdev == NULL)
>> /* start at the beginning */
>> - pos = &mddev->disks;
>> + rdev = list_entry_rcu(&mddev->disks, struct md_rdev, same_set);
>> else {
>> /* release the previous rdev and start from there. */
>> rdev_dec_pending(rdev, mddev);
>> - pos = &rdev->same_set;
>> }
>> - list_for_each_continue_rcu(pos, &mddev->disks) {
>> - rdev = list_entry(pos, struct md_rdev, same_set);
>> + list_for_each_entry_continue_rcu(rdev, &mddev->disks, same_set) {
>> if (rdev->raid_disk >= 0 &&
>> !test_bit(Faulty, &rdev->flags)) {
>> /* this is a usable devices */
>>
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/3] raid: replace list_for_each_continue_rcu with new interface
2012-09-10 8:30 ` Michael Wang
@ 2012-09-11 6:21 ` NeilBrown
2012-09-11 6:27 ` Michael Wang
0 siblings, 1 reply; 7+ messages in thread
From: NeilBrown @ 2012-09-11 6:21 UTC (permalink / raw)
To: Michael Wang; +Cc: LKML, linux-raid, paulmck@linux.vnet.ibm.com
[-- Attachment #1: Type: text/plain, Size: 2591 bytes --]
On Mon, 10 Sep 2012 16:30:11 +0800 Michael Wang <wangyun@linux.vnet.ibm.com>
wrote:
> On 08/24/2012 08:51 AM, Michael Wang wrote:
> > On 08/17/2012 12:33 PM, Michael Wang wrote:
> >> From: Michael Wang <wangyun@linux.vnet.ibm.com>
> >>
> >> This patch replaces list_for_each_continue_rcu() with
> >> list_for_each_entry_continue_rcu() to save a few lines
> >> of code and allow removing list_for_each_continue_rcu().
> >>
> >
> > Hi, Neil
> >
> > Could I get some comments on this patch?
>
> Hi, Neil
>
> Could I get some comments?
>
> And please forgive and warn me if this patch has came to the wrong
> place...I get the address from get_maintainer.
Sorry, August was a bad month.
Yes, patch looks good. Shall I include it in my tree, do you want to submit
them altogether through some rcu tree?
Either way is fine by me. If you want to submit it through some other tree,
Acked-by: NeilBrown <neilb@suse.de>
If not, it'll probably appear in my -next soonish.
Thanks,
NeilBrown
>
> Regards,
> Michael Wang
>
> >
> > Regards,
> > Michael Wang
> >
> >> Signed-off-by: Michael Wang <wangyun@linux.vnet.ibm.com>
> >> ---
> >> drivers/md/bitmap.c | 9 +++------
> >> 1 files changed, 3 insertions(+), 6 deletions(-)
> >>
> >> diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c
> >> index 15dbe03..b160828 100644
> >> --- a/drivers/md/bitmap.c
> >> +++ b/drivers/md/bitmap.c
> >> @@ -163,20 +163,17 @@ static struct md_rdev *next_active_rdev(struct md_rdev *rdev, struct mddev *mdde
> >> * As devices are only added or removed when raid_disk is < 0 and
> >> * nr_pending is 0 and In_sync is clear, the entries we return will
> >> * still be in the same position on the list when we re-enter
> >> - * list_for_each_continue_rcu.
> >> + * list_for_each_entry_continue_rcu.
> >> */
> >> - struct list_head *pos;
> >> rcu_read_lock();
> >> if (rdev == NULL)
> >> /* start at the beginning */
> >> - pos = &mddev->disks;
> >> + rdev = list_entry_rcu(&mddev->disks, struct md_rdev, same_set);
> >> else {
> >> /* release the previous rdev and start from there. */
> >> rdev_dec_pending(rdev, mddev);
> >> - pos = &rdev->same_set;
> >> }
> >> - list_for_each_continue_rcu(pos, &mddev->disks) {
> >> - rdev = list_entry(pos, struct md_rdev, same_set);
> >> + list_for_each_entry_continue_rcu(rdev, &mddev->disks, same_set) {
> >> if (rdev->raid_disk >= 0 &&
> >> !test_bit(Faulty, &rdev->flags)) {
> >> /* this is a usable devices */
> >>
> >
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 828 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/3] raid: replace list_for_each_continue_rcu with new interface
2012-09-11 6:21 ` NeilBrown
@ 2012-09-11 6:27 ` Michael Wang
2012-09-11 16:28 ` Paul E. McKenney
0 siblings, 1 reply; 7+ messages in thread
From: Michael Wang @ 2012-09-11 6:27 UTC (permalink / raw)
To: NeilBrown; +Cc: LKML, linux-raid, paulmck@linux.vnet.ibm.com
On 09/11/2012 02:21 PM, NeilBrown wrote:
> On Mon, 10 Sep 2012 16:30:11 +0800 Michael Wang <wangyun@linux.vnet.ibm.com>
> wrote:
>
>> On 08/24/2012 08:51 AM, Michael Wang wrote:
>>> On 08/17/2012 12:33 PM, Michael Wang wrote:
>>>> From: Michael Wang <wangyun@linux.vnet.ibm.com>
>>>>
>>>> This patch replaces list_for_each_continue_rcu() with
>>>> list_for_each_entry_continue_rcu() to save a few lines
>>>> of code and allow removing list_for_each_continue_rcu().
>>>>
>>>
>>> Hi, Neil
>>>
>>> Could I get some comments on this patch?
>>
>> Hi, Neil
>>
>> Could I get some comments?
>>
>> And please forgive and warn me if this patch has came to the wrong
>> place...I get the address from get_maintainer.
>
> Sorry, August was a bad month.
>
> Yes, patch looks good. Shall I include it in my tree, do you want to submit
> them altogether through some rcu tree?
> Either way is fine by me. If you want to submit it through some other tree,
> Acked-by: NeilBrown <neilb@suse.de>
Thanks for your review ;-)
I think submit to rcu tree may be better, what's your opinion, Paul?
Regards,
Michael Wang
>
> If not, it'll probably appear in my -next soonish.
>
> Thanks,
> NeilBrown
>
>
>>
>> Regards,
>> Michael Wang
>>
>>>
>>> Regards,
>>> Michael Wang
>>>
>>>> Signed-off-by: Michael Wang <wangyun@linux.vnet.ibm.com>
>>>> ---
>>>> drivers/md/bitmap.c | 9 +++------
>>>> 1 files changed, 3 insertions(+), 6 deletions(-)
>>>>
>>>> diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c
>>>> index 15dbe03..b160828 100644
>>>> --- a/drivers/md/bitmap.c
>>>> +++ b/drivers/md/bitmap.c
>>>> @@ -163,20 +163,17 @@ static struct md_rdev *next_active_rdev(struct md_rdev *rdev, struct mddev *mdde
>>>> * As devices are only added or removed when raid_disk is < 0 and
>>>> * nr_pending is 0 and In_sync is clear, the entries we return will
>>>> * still be in the same position on the list when we re-enter
>>>> - * list_for_each_continue_rcu.
>>>> + * list_for_each_entry_continue_rcu.
>>>> */
>>>> - struct list_head *pos;
>>>> rcu_read_lock();
>>>> if (rdev == NULL)
>>>> /* start at the beginning */
>>>> - pos = &mddev->disks;
>>>> + rdev = list_entry_rcu(&mddev->disks, struct md_rdev, same_set);
>>>> else {
>>>> /* release the previous rdev and start from there. */
>>>> rdev_dec_pending(rdev, mddev);
>>>> - pos = &rdev->same_set;
>>>> }
>>>> - list_for_each_continue_rcu(pos, &mddev->disks) {
>>>> - rdev = list_entry(pos, struct md_rdev, same_set);
>>>> + list_for_each_entry_continue_rcu(rdev, &mddev->disks, same_set) {
>>>> if (rdev->raid_disk >= 0 &&
>>>> !test_bit(Faulty, &rdev->flags)) {
>>>> /* this is a usable devices */
>>>>
>>>
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/3] raid: replace list_for_each_continue_rcu with new interface
2012-09-11 6:27 ` Michael Wang
@ 2012-09-11 16:28 ` Paul E. McKenney
0 siblings, 0 replies; 7+ messages in thread
From: Paul E. McKenney @ 2012-09-11 16:28 UTC (permalink / raw)
To: Michael Wang; +Cc: NeilBrown, LKML, linux-raid
On Tue, Sep 11, 2012 at 02:27:42PM +0800, Michael Wang wrote:
> On 09/11/2012 02:21 PM, NeilBrown wrote:
> > On Mon, 10 Sep 2012 16:30:11 +0800 Michael Wang <wangyun@linux.vnet.ibm.com>
> > wrote:
> >
> >> On 08/24/2012 08:51 AM, Michael Wang wrote:
> >>> On 08/17/2012 12:33 PM, Michael Wang wrote:
> >>>> From: Michael Wang <wangyun@linux.vnet.ibm.com>
> >>>>
> >>>> This patch replaces list_for_each_continue_rcu() with
> >>>> list_for_each_entry_continue_rcu() to save a few lines
> >>>> of code and allow removing list_for_each_continue_rcu().
> >>>>
> >>>
> >>> Hi, Neil
> >>>
> >>> Could I get some comments on this patch?
> >>
> >> Hi, Neil
> >>
> >> Could I get some comments?
> >>
> >> And please forgive and warn me if this patch has came to the wrong
> >> place...I get the address from get_maintainer.
> >
> > Sorry, August was a bad month.
> >
> > Yes, patch looks good. Shall I include it in my tree, do you want to submit
> > them altogether through some rcu tree?
> > Either way is fine by me. If you want to submit it through some other tree,
> > Acked-by: NeilBrown <neilb@suse.de>
>
> Thanks for your review ;-)
>
> I think submit to rcu tree may be better, what's your opinion, Paul?
I am fine either way. If I don't see it in mainline this coming merge
window, I will pull it into the -rcu tree.
Thanx, Paul
> Regards,
> Michael Wang
>
>
> >
> > If not, it'll probably appear in my -next soonish.
> >
> > Thanks,
> > NeilBrown
> >
> >
> >>
> >> Regards,
> >> Michael Wang
> >>
> >>>
> >>> Regards,
> >>> Michael Wang
> >>>
> >>>> Signed-off-by: Michael Wang <wangyun@linux.vnet.ibm.com>
> >>>> ---
> >>>> drivers/md/bitmap.c | 9 +++------
> >>>> 1 files changed, 3 insertions(+), 6 deletions(-)
> >>>>
> >>>> diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c
> >>>> index 15dbe03..b160828 100644
> >>>> --- a/drivers/md/bitmap.c
> >>>> +++ b/drivers/md/bitmap.c
> >>>> @@ -163,20 +163,17 @@ static struct md_rdev *next_active_rdev(struct md_rdev *rdev, struct mddev *mdde
> >>>> * As devices are only added or removed when raid_disk is < 0 and
> >>>> * nr_pending is 0 and In_sync is clear, the entries we return will
> >>>> * still be in the same position on the list when we re-enter
> >>>> - * list_for_each_continue_rcu.
> >>>> + * list_for_each_entry_continue_rcu.
> >>>> */
> >>>> - struct list_head *pos;
> >>>> rcu_read_lock();
> >>>> if (rdev == NULL)
> >>>> /* start at the beginning */
> >>>> - pos = &mddev->disks;
> >>>> + rdev = list_entry_rcu(&mddev->disks, struct md_rdev, same_set);
> >>>> else {
> >>>> /* release the previous rdev and start from there. */
> >>>> rdev_dec_pending(rdev, mddev);
> >>>> - pos = &rdev->same_set;
> >>>> }
> >>>> - list_for_each_continue_rcu(pos, &mddev->disks) {
> >>>> - rdev = list_entry(pos, struct md_rdev, same_set);
> >>>> + list_for_each_entry_continue_rcu(rdev, &mddev->disks, same_set) {
> >>>> if (rdev->raid_disk >= 0 &&
> >>>> !test_bit(Faulty, &rdev->flags)) {
> >>>> /* this is a usable devices */
> >>>>
> >>>
> >
>
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2012-09-11 16:28 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <502CB924.10200@linux.vnet.ibm.com>
2012-08-17 4:33 ` [PATCH 1/3] raid: replace list_for_each_continue_rcu with new interface Michael Wang
2012-08-20 23:41 ` Paul E. McKenney
2012-08-24 0:51 ` Michael Wang
2012-09-10 8:30 ` Michael Wang
2012-09-11 6:21 ` NeilBrown
2012-09-11 6:27 ` Michael Wang
2012-09-11 16:28 ` Paul E. McKenney
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).