* [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).