On Sat, Mar 01, 2008 at 02:04:22PM -0800, Sunil Mushran wrote:
> dlm_master_request_handler() forgot to put a lockres when
> dlm_assert_master_worker() failed or was skipped.
> 
> Signed-off-by: Sunil Mushran <[EMAIL PROTECTED]>
Signed-off-by: Joel Becker <[EMAIL PROTECTED]>

> ---
>  fs/ocfs2/dlm/dlmmaster.c |   11 ++++++++++-
>  1 files changed, 10 insertions(+), 1 deletions(-)
> 
> diff --git a/fs/ocfs2/dlm/dlmmaster.c b/fs/ocfs2/dlm/dlmmaster.c
> index eadf9bf..b6629bb 100644
> --- a/fs/ocfs2/dlm/dlmmaster.c
> +++ b/fs/ocfs2/dlm/dlmmaster.c
> @@ -1663,7 +1663,12 @@ way_up_top:
>               dlm_put_mle(tmpmle);
>       }
>  send_response:
> -
> +     /*
> +      * __dlm_lookup_lockres() grabbed a reference to this lockres.
> +      * The reference is released by dlm_assert_master_worker() under
> +      * the call to dlm_dispatch_assert_master().  If
> +      * dlm_assert_master_worker() isn't called, we drop it here.
> +      */
>       if (dispatch_assert) {
>               if (response != DLM_MASTER_RESP_YES)
>                       mlog(ML_ERROR, "invalid response %d\n", response);
> @@ -1678,7 +1683,11 @@ send_response:
>               if (ret < 0) {
>                       mlog(ML_ERROR, "failed to dispatch assert master 
> work\n");
>                       response = DLM_MASTER_RESP_ERROR;
> +                     dlm_lockres_put(res);
>               }
> +     } else {
> +             if (res)
> +                     dlm_lockres_put(res);
>       }
>  
>       dlm_put(dlm);
> -- 
> 1.5.3.6
> 
> 
> _______________________________________________
> Ocfs2-devel mailing list
> [email protected]
> http://oss.oracle.com/mailman/listinfo/ocfs2-devel

-- 

"Anything that is too stupid to be spoken is sung."  
        - Voltaire

Joel Becker
Principal Software Developer
Oracle
E-mail: [EMAIL PROTECTED]
Phone: (650) 506-8127

_______________________________________________
Ocfs2-devel mailing list
[email protected]
http://oss.oracle.com/mailman/listinfo/ocfs2-devel

Reply via email to