Re: [PATCH 1/3] raid: replace list_for_each_continue_rcu with newinterface

From: NeilBrown
Date: Tue Sep 11 2012 - 02:21:19 EST


On Mon, 10 Sep 2012 16:30:11 +0800 Michael Wang <wangyun@xxxxxxxxxxxxxxxxxx>
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@xxxxxxxxxxxxxxxxxx>
> >>
> >> 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@xxxxxxx>

If not, it'll probably appear in my -next soonish.

Thanks,
NeilBrown


>
> Regards,
> Michael Wang
>
> >
> > Regards,
> > Michael Wang
> >
> >> Signed-off-by: Michael Wang <wangyun@xxxxxxxxxxxxxxxxxx>
> >> ---
> >> 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: signature.asc
Description: PGP signature