All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tejun Heo <tj@kernel.org>
To: cluster-devel.redhat.com
Subject: [Cluster-devel] [PATCH 09/14] dlm: use idr_for_each_entry() in recover_idr_clear() error path
Date: Fri, 25 Jan 2013 17:31:07 -0800	[thread overview]
Message-ID: <1359163872-1949-10-git-send-email-tj@kernel.org> (raw)
In-Reply-To: <1359163872-1949-1-git-send-email-tj@kernel.org>

Convert recover_idr_clear() to use idr_for_each_entry() instead of
idr_for_each().  It's somewhat less efficient this way but it
shouldn't matter in an error path.  This is to help with deprecation
of idr_remove_all().

Only compile tested.

Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Christine Caulfield <ccaulfie@redhat.com>
Cc: David Teigland <teigland@redhat.com>
Cc: cluster-devel at redhat.com
---
This patch depends on an earlier idr patch and I think it would be
best to route these together through -mm.  Christine, David, can you
please ack this?

Thanks.

 fs/dlm/recover.c | 23 ++++++++++-------------
 1 file changed, 10 insertions(+), 13 deletions(-)

diff --git a/fs/dlm/recover.c b/fs/dlm/recover.c
index aedea28..b2856e7 100644
--- a/fs/dlm/recover.c
+++ b/fs/dlm/recover.c
@@ -351,23 +351,20 @@ static struct dlm_rsb *recover_idr_find(struct dlm_ls *ls, uint64_t id)
 	return r;
 }
 
-static int recover_idr_clear_rsb(int id, void *p, void *data)
+static void recover_idr_clear(struct dlm_ls *ls)
 {
-	struct dlm_ls *ls = data;
-	struct dlm_rsb *r = p;
+	struct dlm_rsb *r;
+	int id;
 
-	r->res_id = 0;
-	r->res_recover_locks_count = 0;
-	ls->ls_recover_list_count--;
+	spin_lock(&ls->ls_recover_idr_lock);
 
-	dlm_put_rsb(r);
-	return 0;
-}
+	idr_for_each_entry(&ls->ls_recover_idr, r, id) {
+		r->res_id = 0;
+		r->res_recover_locks_count = 0;
+		ls->ls_recover_list_count--;
 
-static void recover_idr_clear(struct dlm_ls *ls)
-{
-	spin_lock(&ls->ls_recover_idr_lock);
-	idr_for_each(&ls->ls_recover_idr, recover_idr_clear_rsb, ls);
+		dlm_put_rsb(r);
+	}
 	idr_remove_all(&ls->ls_recover_idr);
 
 	if (ls->ls_recover_list_count != 0) {
-- 
1.8.1



WARNING: multiple messages have this Message-ID (diff)
From: Tejun Heo <tj@kernel.org>
To: akpm@linux-foundation.org
Cc: rusty@rustcorp.com.au, linux-kernel@vger.kernel.org,
	Tejun Heo <tj@kernel.org>,
	Christine Caulfield <ccaulfie@redhat.com>,
	David Teigland <teigland@redhat.com>,
	cluster-devel@redhat.com
Subject: [PATCH 09/14] dlm: use idr_for_each_entry() in recover_idr_clear() error path
Date: Fri, 25 Jan 2013 17:31:07 -0800	[thread overview]
Message-ID: <1359163872-1949-10-git-send-email-tj@kernel.org> (raw)
In-Reply-To: <1359163872-1949-1-git-send-email-tj@kernel.org>

Convert recover_idr_clear() to use idr_for_each_entry() instead of
idr_for_each().  It's somewhat less efficient this way but it
shouldn't matter in an error path.  This is to help with deprecation
of idr_remove_all().

Only compile tested.

Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Christine Caulfield <ccaulfie@redhat.com>
Cc: David Teigland <teigland@redhat.com>
Cc: cluster-devel@redhat.com
---
This patch depends on an earlier idr patch and I think it would be
best to route these together through -mm.  Christine, David, can you
please ack this?

Thanks.

 fs/dlm/recover.c | 23 ++++++++++-------------
 1 file changed, 10 insertions(+), 13 deletions(-)

diff --git a/fs/dlm/recover.c b/fs/dlm/recover.c
index aedea28..b2856e7 100644
--- a/fs/dlm/recover.c
+++ b/fs/dlm/recover.c
@@ -351,23 +351,20 @@ static struct dlm_rsb *recover_idr_find(struct dlm_ls *ls, uint64_t id)
 	return r;
 }
 
-static int recover_idr_clear_rsb(int id, void *p, void *data)
+static void recover_idr_clear(struct dlm_ls *ls)
 {
-	struct dlm_ls *ls = data;
-	struct dlm_rsb *r = p;
+	struct dlm_rsb *r;
+	int id;
 
-	r->res_id = 0;
-	r->res_recover_locks_count = 0;
-	ls->ls_recover_list_count--;
+	spin_lock(&ls->ls_recover_idr_lock);
 
-	dlm_put_rsb(r);
-	return 0;
-}
+	idr_for_each_entry(&ls->ls_recover_idr, r, id) {
+		r->res_id = 0;
+		r->res_recover_locks_count = 0;
+		ls->ls_recover_list_count--;
 
-static void recover_idr_clear(struct dlm_ls *ls)
-{
-	spin_lock(&ls->ls_recover_idr_lock);
-	idr_for_each(&ls->ls_recover_idr, recover_idr_clear_rsb, ls);
+		dlm_put_rsb(r);
+	}
 	idr_remove_all(&ls->ls_recover_idr);
 
 	if (ls->ls_recover_list_count != 0) {
-- 
1.8.1


  parent reply	other threads:[~2013-01-26  1:31 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-01-26  1:30 [PATCHSET] idr: deprecate idr_remove_all() Tejun Heo
2013-01-26  1:30 ` [PATCH 01/14] idr: make idr_destroy() imply idr_remove_all() Tejun Heo
2013-01-26  1:31 ` [PATCH 02/14] atm/nicstar: don't use idr_remove_all() Tejun Heo
2013-01-27  6:43   ` David Miller
2013-02-04 17:52   ` [PATCH v2 " Tejun Heo
2013-02-04 18:10     ` chas williams - CONTRACTOR
2013-02-04 18:35       ` Tejun Heo
2013-01-26  1:31 ` [PATCH 03/14] block/loop: " Tejun Heo
2013-01-26  1:31 ` [PATCH 04/14] firewire: " Tejun Heo
2013-01-26  9:07   ` Stefan Richter
2013-01-26  1:31 ` [PATCH 05/14] drm: " Tejun Heo
2013-01-26  1:31   ` Tejun Heo
2013-01-26  1:31 ` [PATCH 06/14] dm: " Tejun Heo
2013-01-26  1:31 ` [PATCH 07/14] remoteproc: " Tejun Heo
2013-01-26  1:31 ` [PATCH 08/14] rpmsg: " Tejun Heo
2013-01-26  1:31 ` Tejun Heo [this message]
2013-01-26  1:31   ` [PATCH 09/14] dlm: use idr_for_each_entry() in recover_idr_clear() error path Tejun Heo
2013-01-28 15:55   ` [Cluster-devel] " David Teigland
2013-01-28 15:55     ` David Teigland
2013-01-26  1:31 ` [Cluster-devel] [PATCH 10/14] dlm: don't use idr_remove_all() Tejun Heo
2013-01-26  1:31   ` Tejun Heo
2013-01-28 15:57   ` [Cluster-devel] " David Teigland
2013-01-28 15:57     ` David Teigland
2013-01-29 15:13     ` [Cluster-devel] " David Teigland
2013-01-29 15:13       ` David Teigland
2013-01-30 21:24       ` [Cluster-devel] " David Teigland
2013-01-30 21:24         ` David Teigland
2013-01-31 23:53         ` [Cluster-devel] " Tejun Heo
2013-01-31 23:53           ` Tejun Heo
2013-02-01  0:18           ` [Cluster-devel] " Tejun Heo
2013-02-01  0:18             ` Tejun Heo
2013-02-01 17:44             ` [Cluster-devel] " David Teigland
2013-02-01 17:44               ` David Teigland
2013-02-01 18:00               ` [Cluster-devel] " Tejun Heo
2013-02-01 18:00                 ` Tejun Heo
2013-02-02 23:10                 ` [Cluster-devel] [PATCH] idr: fix a subtle bug in idr_get_next() Tejun Heo
2013-02-02 23:10                   ` Tejun Heo
2013-02-02 23:11                   ` [Cluster-devel] " Tejun Heo
2013-02-02 23:11                     ` Tejun Heo
2013-02-03  2:15                     ` [Cluster-devel] " Randy Dunlap
2013-02-03  2:15                       ` Randy Dunlap
2013-02-03 17:53                       ` [Cluster-devel] " Hugh Dickins
2013-02-03 17:53                         ` Hugh Dickins
2013-02-05 15:36                     ` [Cluster-devel] " David Teigland
2013-02-05 15:36                       ` David Teigland
2013-02-04  3:39                   ` [Cluster-devel] " Li Zefan
2013-02-04  3:39                     ` Li Zefan
2013-02-04 17:44                     ` [Cluster-devel] " Tejun Heo
2013-02-04 17:44                       ` Tejun Heo
2013-01-26  1:31 ` [PATCH 11/14] nfs: idr_destroy() no longer needs idr_remove_all() Tejun Heo
2013-01-29 22:58   ` J. Bruce Fields
2013-01-30  2:18     ` Myklebust, Trond
2013-02-01  0:08       ` Tejun Heo
2013-01-26  1:31 ` [PATCH 12/14] inotify: don't use idr_remove_all() Tejun Heo
     [not found] ` <1359163872-1949-1-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2013-01-26  1:31   ` [PATCH 13/14] cgroup: " Tejun Heo
2013-01-26  1:31     ` Tejun Heo
2013-01-26  1:31 ` [PATCH 14/14] idr: deprecate idr_remove_all() Tejun Heo
2013-01-26 13:48   ` Arnd Bergmann
2013-01-26 14:24     ` Tejun Heo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1359163872-1949-10-git-send-email-tj@kernel.org \
    --to=tj@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.