Re: [PATCH 1/3] raid: replace list_for_each_continue_rcu with new interface
From: NeilBrown <hidden>
Date: 2012-09-11 06:21:29
Also in:
lkml
On Mon, 10 Sep 2012 16:30:11 +0800 Michael Wang [off-list ref] wrote:
On 08/24/2012 08:51 AM, Michael Wang wrote:quoted
On 08/17/2012 12:33 PM, Michael Wang wrote:quoted
From: Michael Wang <redacted> 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 [off-list ref] If not, it'll probably appear in my -next soonish. Thanks, NeilBrown
Regards, Michael Wangquoted
Regards, Michael Wangquoted
Signed-off-by: Michael Wang <redacted> --- 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 */
Attachments
- signature.asc [application/pgp-signature] 828 bytes