diff mbox

[rdma-core] srp_daemon: Don't create async_ev_thread if only run once

Message ID 20171219190958.3189-1-honli@redhat.com (mailing list archive)
State Accepted
Delegated to: Leon Romanovsky
Headers show

Commit Message

Honggang LI Dec. 19, 2017, 7:09 p.m. UTC
From: Honggang Li <honli@redhat.com>

fd3005f0cd34 moves the signal handler setup from ibsrpdm path. So,
default signal handler will be used when the main pthread send signal
SIGINT to pthread async_ev_thread. ibsrpdm will exit with non-zero
exit code as default signal handler killed it. ibsrpdm should return
with exit code zero, if no error emerged.

We should not create async_ev_thread for ibsrpdm.

Fixes: fd3005f0cd34 ("srp_daemon: Move the setup of the wakeup_pipe after openlog")
Reviewed-by: Bart Van Assche <bart.vanassche@wdc.com>
Signed-off-by: Honggang Li <honli@redhat.com>
---
 srp_daemon/srp_daemon.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

Comments

Nicolas Morey-Chaisemartin Jan. 3, 2018, 10:27 a.m. UTC | #1
Le 19/12/2017 à 20:09, Honggang LI a écrit :
> From: Honggang Li <honli@redhat.com>
>
> fd3005f0cd34 moves the signal handler setup from ibsrpdm path. So,
> default signal handler will be used when the main pthread send signal
> SIGINT to pthread async_ev_thread. ibsrpdm will exit with non-zero
> exit code as default signal handler killed it. ibsrpdm should return
> with exit code zero, if no error emerged.
>
> We should not create async_ev_thread for ibsrpdm.
>
> Fixes: fd3005f0cd34 ("srp_daemon: Move the setup of the wakeup_pipe after openlog")
> Reviewed-by: Bart Van Assche <bart.vanassche@wdc.com>
> Signed-off-by: Honggang Li <honli@redhat.com>
> ---
>  srp_daemon/srp_daemon.c | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/srp_daemon/srp_daemon.c b/srp_daemon/srp_daemon.c
> index cec36db2..4012a7db 100644
> --- a/srp_daemon/srp_daemon.c
> +++ b/srp_daemon/srp_daemon.c
> @@ -1945,12 +1945,12 @@ static struct resources *alloc_res(void)
>  				     run_thread_get_trap_notices, &res->res);
>  		if (ret)
>  			goto err;
> -	}
>  
> -	ret = pthread_create(&res->res.async_ev_thread, NULL,
> -			     run_thread_listen_to_events, &res->res);
> -	if (ret)
> -		goto err;
> +		ret = pthread_create(&res->res.async_ev_thread, NULL,
> +				     run_thread_listen_to_events, &res->res);
> +		if (ret)
> +			goto err;
> +	}
>  
>  	if (config->retry_timeout && !config->once) {
>  		ret = pthread_create(&res->res.reconnect_thread, NULL,
Reviewed-by: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.de>
Note: I will backport this to stable-v1[56] branches once its in master
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Leon Romanovsky Jan. 3, 2018, 2:19 p.m. UTC | #2
On Wed, Jan 03, 2018 at 11:27:27AM +0100, Nicolas Morey-Chaisemartin wrote:
>
>
> Le 19/12/2017 à 20:09, Honggang LI a écrit :
> > From: Honggang Li <honli@redhat.com>
> >
> > fd3005f0cd34 moves the signal handler setup from ibsrpdm path. So,
> > default signal handler will be used when the main pthread send signal
> > SIGINT to pthread async_ev_thread. ibsrpdm will exit with non-zero
> > exit code as default signal handler killed it. ibsrpdm should return
> > with exit code zero, if no error emerged.
> >
> > We should not create async_ev_thread for ibsrpdm.
> >
> > Fixes: fd3005f0cd34 ("srp_daemon: Move the setup of the wakeup_pipe after openlog")
> > Reviewed-by: Bart Van Assche <bart.vanassche@wdc.com>
> > Signed-off-by: Honggang Li <honli@redhat.com>
> > ---
> >  srp_daemon/srp_daemon.c | 10 +++++-----
> >  1 file changed, 5 insertions(+), 5 deletions(-)
> >
> > diff --git a/srp_daemon/srp_daemon.c b/srp_daemon/srp_daemon.c
> > index cec36db2..4012a7db 100644
> > --- a/srp_daemon/srp_daemon.c
> > +++ b/srp_daemon/srp_daemon.c
> > @@ -1945,12 +1945,12 @@ static struct resources *alloc_res(void)
> >  				     run_thread_get_trap_notices, &res->res);
> >  		if (ret)
> >  			goto err;
> > -	}
> >
> > -	ret = pthread_create(&res->res.async_ev_thread, NULL,
> > -			     run_thread_listen_to_events, &res->res);
> > -	if (ret)
> > -		goto err;
> > +		ret = pthread_create(&res->res.async_ev_thread, NULL,
> > +				     run_thread_listen_to_events, &res->res);
> > +		if (ret)
> > +			goto err;
> > +	}
> >
> >  	if (config->retry_timeout && !config->once) {
> >  		ret = pthread_create(&res->res.reconnect_thread, NULL,
> Reviewed-by: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.de>
> Note: I will backport this to stable-v1[56] branches once its in master

I merged it two weeks before :)
https://github.com/linux-rdma/rdma-core/commit/3f58c9237533ed9d92f3d08cad56527299781862

Thanks

> --
> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/srp_daemon/srp_daemon.c b/srp_daemon/srp_daemon.c
index cec36db2..4012a7db 100644
--- a/srp_daemon/srp_daemon.c
+++ b/srp_daemon/srp_daemon.c
@@ -1945,12 +1945,12 @@  static struct resources *alloc_res(void)
 				     run_thread_get_trap_notices, &res->res);
 		if (ret)
 			goto err;
-	}
 
-	ret = pthread_create(&res->res.async_ev_thread, NULL,
-			     run_thread_listen_to_events, &res->res);
-	if (ret)
-		goto err;
+		ret = pthread_create(&res->res.async_ev_thread, NULL,
+				     run_thread_listen_to_events, &res->res);
+		if (ret)
+			goto err;
+	}
 
 	if (config->retry_timeout && !config->once) {
 		ret = pthread_create(&res->res.reconnect_thread, NULL,