Thread (7 messages) 7 messages, 3 authors, 2012-09-11

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 Wang
quoted
Regards,
Michael Wang
quoted
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

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help