Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1161920 > unrolled thread

Re: [Cluster-devel] [PATCH] dlm: remove unnecessary error check

Started byGuoqing Jiang <gqJiang@suse.com>
First post2015-06-10 04:50 +0200
Last post2015-06-11 12:00 +0200
Articles 4 — 2 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: [Cluster-devel] [PATCH] dlm: remove unnecessary error check Guoqing Jiang <gqJiang@suse.com> - 2015-06-10 04:50 +0200
    Re: [Cluster-devel] [PATCH] dlm: remove unnecessary error check Bob Peterson <rpeterso@redhat.com> - 2015-06-10 05:00 +0200
      Re: [Cluster-devel] [PATCH] dlm: remove unnecessary error check Guoqing Jiang <gqJiang@suse.com> - 2015-06-11 04:50 +0200
      Re: [Cluster-devel] [PATCH] dlm: remove unnecessary error check Guoqing Jiang <gqJiang@suse.com> - 2015-06-11 12:00 +0200

#1161920 — Re: [Cluster-devel] [PATCH] dlm: remove unnecessary error check

FromGuoqing Jiang <gqJiang@suse.com>
Date2015-06-10 04:50 +0200
SubjectRe: [Cluster-devel] [PATCH] dlm: remove unnecessary error check
Message-ID<pzEfw-10X-13@gated-at.bofh.it>
Hi Bob,

Bob Peterson wrote:
> ----- Original Message -----
>   
>> We don't need the redundant logic since send_message always returns 0.
>>
>> Signed-off-by: Guoqing Jiang <gqjiang@suse.com>
>> ---
>>  fs/dlm/lock.c | 10 ++--------
>>  1 file changed, 2 insertions(+), 8 deletions(-)
>>
>> diff --git a/fs/dlm/lock.c b/fs/dlm/lock.c
>> index 35502d4..6fc3de9 100644
>> --- a/fs/dlm/lock.c
>> +++ b/fs/dlm/lock.c
>> @@ -3656,10 +3656,7 @@ static int send_common(struct dlm_rsb *r, struct
>> dlm_lkb *lkb, int mstype)
>>  
>>  	send_args(r, lkb, ms);
>>  
>> -	error = send_message(mh, ms);
>> -	if (error)
>> -		goto fail;
>> -	return 0;
>> +	return send_message(mh, ms);
>>  
>>   fail:
>>  	remove_from_waiters(lkb, msg_reply_type(mstype));
>> @@ -3763,10 +3760,7 @@ static int send_lookup(struct dlm_rsb *r, struct
>> dlm_lkb *lkb)
>>  
>>  	send_args(r, lkb, ms);
>>  
>> -	error = send_message(mh, ms);
>> -	if (error)
>> -		goto fail;
>> -	return 0;
>> +	return send_message(mh, ms);
>>  
>>   fail:
>>  	remove_from_waiters(lkb, DLM_MSG_LOOKUP_REPLY);
>> --
>> 1.7.12.4
>>     
>
> Hi,
>
> The patch looks okay, but if remove_from_waiters() always returns 0,
> wouldn't it be better to change the function from int to void and
> return 0 here? The advantage is that code spelunkers wouldn't need
> to back-track one more level (not to mention the instruction or two
> it might save).
>
>   
Seems remove_from_waiters is not always returns 0, the return value
could  be -1 or 0 which depends on _remove_from_waiters.

BTW, I found that there are no big difference between send_common
and send_lookup, since the send_common can also be use to send
lookup message, I guess send_lookup can be removed as well.

Thanks,
Guoqing
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [next] | [standalone]


#1161922

FromBob Peterson <rpeterso@redhat.com>
Date2015-06-10 05:00 +0200
Message-ID<pzEpb-1dn-5@gated-at.bofh.it>
In reply to#1161920
----- Original Message -----
> Hi Bob,
> 
> Bob Peterson wrote:
> > ----- Original Message -----
> >   
> >> We don't need the redundant logic since send_message always returns 0.
> >>
> >> Signed-off-by: Guoqing Jiang <gqjiang@suse.com>
> >> ---
> >>  fs/dlm/lock.c | 10 ++--------
> >>  1 file changed, 2 insertions(+), 8 deletions(-)
> >>
> >> diff --git a/fs/dlm/lock.c b/fs/dlm/lock.c
> >> index 35502d4..6fc3de9 100644
> >> --- a/fs/dlm/lock.c
> >> +++ b/fs/dlm/lock.c
> >> @@ -3656,10 +3656,7 @@ static int send_common(struct dlm_rsb *r, struct
> >> dlm_lkb *lkb, int mstype)
> >>  
> >>  	send_args(r, lkb, ms);
> >>  
> >> -	error = send_message(mh, ms);
> >> -	if (error)
> >> -		goto fail;
> >> -	return 0;
> >> +	return send_message(mh, ms);
> >>  
> >>   fail:
> >>  	remove_from_waiters(lkb, msg_reply_type(mstype));
> >> @@ -3763,10 +3760,7 @@ static int send_lookup(struct dlm_rsb *r, struct
> >> dlm_lkb *lkb)
> >>  
> >>  	send_args(r, lkb, ms);
> >>  
> >> -	error = send_message(mh, ms);
> >> -	if (error)
> >> -		goto fail;
> >> -	return 0;
> >> +	return send_message(mh, ms);
> >>  
> >>   fail:
> >>  	remove_from_waiters(lkb, DLM_MSG_LOOKUP_REPLY);
> >> --
> >> 1.7.12.4
> >>     
> >
> > Hi,
> >
> > The patch looks okay, but if remove_from_waiters() always returns 0,
> > wouldn't it be better to change the function from int to void and
> > return 0 here? The advantage is that code spelunkers wouldn't need
> > to back-track one more level (not to mention the instruction or two
> > it might save).
> >
> >   
> Seems remove_from_waiters is not always returns 0, the return value
> could  be -1 or 0 which depends on _remove_from_waiters.
> 
> BTW, I found that there are no big difference between send_common
> and send_lookup, since the send_common can also be use to send
> lookup message, I guess send_lookup can be removed as well.
> 
> Thanks,
> Guoqing

Hi Guoqing,

If remove_from_waiters can return -1, then the patch would prevent the
code from calling remove_from_waiters. So the patch still doesn't look
right to me.

Regards,

Bob Peterson
Red Hat File Systems
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1162970

FromGuoqing Jiang <gqJiang@suse.com>
Date2015-06-11 04:50 +0200
Message-ID<pA0J4-AO-9@gated-at.bofh.it>
In reply to#1161922
Bob Peterson wrote:
>
>>>>     
>>>>         
>>>>> ----- Original Message -----
>>>>>   
>>>>>       
>>>>>           
>>>>>> We don't need the redundant logic since send_message always returns 0.
>>>>>>
>>>>>> Signed-off-by: Guoqing Jiang <gqjiang@suse.com>
>>>>>> ---
>>>>>>  fs/dlm/lock.c | 10 ++--------
>>>>>>  1 file changed, 2 insertions(+), 8 deletions(-)
>>>>>>
>>>>>> diff --git a/fs/dlm/lock.c b/fs/dlm/lock.c
>>>>>> index 35502d4..6fc3de9 100644
>>>>>> --- a/fs/dlm/lock.c
>>>>>> +++ b/fs/dlm/lock.c
>>>>>> @@ -3656,10 +3656,7 @@ static int send_common(struct dlm_rsb *r, struct
>>>>>> dlm_lkb *lkb, int mstype)
>>>>>>  
>>>>>>  	send_args(r, lkb, ms);
>>>>>>  
>>>>>> -	error = send_message(mh, ms);
>>>>>> -	if (error)
>>>>>> -		goto fail;
>>>>>> -	return 0;
>>>>>> +	return send_message(mh, ms);
>>>>>>             
>
> Hi Guoqing,
>
> Sorry, I was momentarily confused. I think you misunderstood what I was saying.
> What I meant was: Instead of doing:
>
> +	return send_message(mh, ms);
> ...where send_message returns 0, it might be better to have:
>
> static void send_message(struct dlm_mhandle *mh, struct dlm_message *ms)
> {
> 	dlm_message_out(ms);
> 	dlm_lowcomms_commit_buffer(mh);
> }
>
> ...And in send_common, do (in both places):
> +	send_message(mh, ms);
> +	return 0;
>
> Since it's so short, it might even be better to code send_message as a macro,
> or at least an "inline" function.
>
>   
Hi Bob,

Got it, thanks. It is a better solution but it is not a bug fix or
similar thing, so maybe just leave it as it is.

Regards,
Guoqing


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1163104

FromGuoqing Jiang <gqJiang@suse.com>
Date2015-06-11 12:00 +0200
Message-ID<pA7rc-1YG-3@gated-at.bofh.it>
In reply to#1161922
Hi David,

David Teigland wrote:
> On Wed, Jun 10, 2015 at 11:10:44AM +0800, Guoqing Jiang wrote:
>   
>> The remove_from_waiters could  only be invoked after failed to
>> create_message, right?
>> Since send_message always returns 0, this patch doesn't touch anything
>> about the failure
>> path, and it also doesn't change the original semantic.
>>     
>
> I'm not inclined to take any patches unless there's a problem identified.
>
> .  
>   
Do you consider take the following clean up? If yes, I will send a
formal patch,
otherwise pls ignore it.

diff --git a/fs/dlm/lock.c b/fs/dlm/lock.c
index 35502d4..7c822f7 100644
--- a/fs/dlm/lock.c
+++ b/fs/dlm/lock.c
@@ -3747,30 +3747,7 @@ static int send_bast(struct dlm_rsb *r, struct
dlm_lkb *lkb, int mode)
 
 static int send_lookup(struct dlm_rsb *r, struct dlm_lkb *lkb)
 {
-       struct dlm_message *ms;
-       struct dlm_mhandle *mh;
-       int to_nodeid, error;
-
-       to_nodeid = dlm_dir_nodeid(r);
-
-       error = add_to_waiters(lkb, DLM_MSG_LOOKUP, to_nodeid);
-       if (error)
-               return error;
-
-       error = create_message(r, NULL, to_nodeid, DLM_MSG_LOOKUP, &ms,
&mh);
-       if (error)
-               goto fail;
-
-       send_args(r, lkb, ms);
-
-       error = send_message(mh, ms);
-       if (error)
-               goto fail;
-       return 0;
-
- fail:
-       remove_from_waiters(lkb, DLM_MSG_LOOKUP_REPLY);
-       return error;
+       return send_common(r, lkb, DLM_MSG_LOOKUP);
 }

Thanks,
Guoqing
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web