lkml.org 
[lkml]   [2013]   [Feb]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 10/77] dlm: use idr_for_each_entry() in recover_idr_clear() error path
    Date
    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
    ---
    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


    \
     
     \ /
      Last update: 2013-02-06 23:24    [W:4.198 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site