All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Carpenter <dan.carpenter@oracle.com>
To: lustre-devel@lists.lustre.org
Subject: [lustre-devel] [PATCH 03/40] staging: lustre: reflect down routes in /proc/sys/lnet/routes
Date: Wed, 2 Dec 2015 10:54:10 +0300	[thread overview]
Message-ID: <20151202075410.GJ18797@mwanda> (raw)
In-Reply-To: <1448062576-23757-4-git-send-email-jsimmons@infradead.org>

On Fri, Nov 20, 2015 at 06:35:39PM -0500, James Simmons wrote:
> From: Chris Horn <hornc@cray.com>
> 
> We consider routes "down" if the router is down or the router
> NI for the target network is down. This should be reflected
> in the output of /proc/sys/lnet/routes
> 
> Signed-off-by: Chris Horn <hornc@cray.com>
> Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-3679
> Reviewed-on: http://review.whamcloud.com/7857
> Reviewed-by: Cory Spitz <spitzcor@cray.com>
> Reviewed-by: Isaac Huang <he.huang@intel.com>
> Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
> ---
>  .../staging/lustre/include/linux/lnet/lib-lnet.h   |   13 ++++++++
>  drivers/staging/lustre/lnet/lnet/lib-move.c        |   32 ++++++++++----------
>  drivers/staging/lustre/lnet/lnet/router_proc.c     |    2 +-
>  3 files changed, 30 insertions(+), 17 deletions(-)
> 
> diff --git a/drivers/staging/lustre/include/linux/lnet/lib-lnet.h b/drivers/staging/lustre/include/linux/lnet/lib-lnet.h
> index b61d504..09c6bfe 100644
> --- a/drivers/staging/lustre/include/linux/lnet/lib-lnet.h
> +++ b/drivers/staging/lustre/include/linux/lnet/lib-lnet.h
> @@ -64,6 +64,19 @@ extern lnet_t	the_lnet;	/* THE network */
>  /** exclusive lock */
>  #define LNET_LOCK_EX		CFS_PERCPT_LOCK_EX
>  
> +static inline int lnet_is_route_alive(lnet_route_t *route)
> +{
> +	/* gateway is down */
> +	if (!route->lr_gateway->lp_alive)
> +		return 0;
> +	/* no NI status, assume it's alive */
> +	if ((route->lr_gateway->lp_ping_feats &
> +	     LNET_PING_FEAT_NI_STATUS) == 0)
> +		return 1;
> +	/* has NI status, check # down NIs */
> +	return route->lr_downis == 0;
> +}
> +
>  static inline int lnet_is_wire_handle_none(lnet_handle_wire_t *wh)
>  {
>  	return (wh->wh_interface_cookie == LNET_WIRE_HANDLE_COOKIE_NONE &&
> diff --git a/drivers/staging/lustre/lnet/lnet/lib-move.c b/drivers/staging/lustre/lnet/lnet/lib-move.c
> index 7a68382..c56de44 100644
> --- a/drivers/staging/lustre/lnet/lnet/lib-move.c
> +++ b/drivers/staging/lustre/lnet/lnet/lib-move.c
> @@ -1122,9 +1122,9 @@ static lnet_peer_t *
>  lnet_find_route_locked(lnet_ni_t *ni, lnet_nid_t target, lnet_nid_t rtr_nid)
>  {
>  	lnet_remotenet_t *rnet;
> -	lnet_route_t *rtr;
> -	lnet_route_t *rtr_best;
> -	lnet_route_t *rtr_last;
> +	lnet_route_t *route;
> +	lnet_route_t *best_route;
> +	lnet_route_t *last_route;

Unrelated variable renaming.

>  	struct lnet_peer *lp_best;
>  	struct lnet_peer *lp;
>  	int rc;
> @@ -1137,13 +1137,12 @@ lnet_find_route_locked(lnet_ni_t *ni, lnet_nid_t target, lnet_nid_t rtr_nid)
>  		return NULL;
>  
>  	lp_best = NULL;
> -	rtr_best = rtr_last = NULL;
> -	list_for_each_entry(rtr, &rnet->lrn_routes, lr_list) {
> -		lp = rtr->lr_gateway;
> +	best_route = NULL;
> +	last_route = NULL;

Unrelated checkpatch fixes.

> +	list_for_each_entry(route, &rnet->lrn_routes, lr_list) {
> +		lp = route->lr_gateway;
>  
> -		if (!lp->lp_alive || /* gateway is down */
> -		    ((lp->lp_ping_feats & LNET_PING_FEAT_NI_STATUS) != 0 &&
> -		     rtr->lr_downis != 0)) /* NI to target is down */
> +		if (!lnet_is_route_alive(route))

This section is related to the patch, we moved the check out into its
own function.

>  			continue;
>  
>  		if (ni != NULL && lp->lp_ni != ni)
> @@ -1153,28 +1152,29 @@ lnet_find_route_locked(lnet_ni_t *ni, lnet_nid_t target, lnet_nid_t rtr_nid)
>  			return lp;
>  
>  		if (lp_best == NULL) {
> -			rtr_best = rtr_last = rtr;
> +			best_route = route;
> +			last_route = route;

More unrelated checkpatch fixes.

>  			lp_best = lp;
>  			continue;
>  		}
>  
>  		/* no protection on below fields, but it's harmless */
> -		if (rtr_last->lr_seq - rtr->lr_seq < 0)
> -			rtr_last = rtr;
> +		if (last_route->lr_seq - route->lr_seq < 0)
> +			last_route = route;
>  
> -		rc = lnet_compare_routes(rtr, rtr_best);
> +		rc = lnet_compare_routes(route, best_route);
>  		if (rc < 0)
>  			continue;
>  
> -		rtr_best = rtr;
> +		best_route = route;
>  		lp_best = lp;
>  	}
>  
>  	/* set sequence number on the best router to the latest sequence + 1
>  	 * so we can round-robin all routers, it's race and inaccurate but
>  	 * harmless and functional  */
> -	if (rtr_best != NULL)
> -		rtr_best->lr_seq = rtr_last->lr_seq + 1;
> +	if (best_route)

More checkpatch fixes.

> +		best_route->lr_seq = last_route->lr_seq + 1;
>  	return lp_best;
>  }
>  
> diff --git a/drivers/staging/lustre/lnet/lnet/router_proc.c b/drivers/staging/lustre/lnet/lnet/router_proc.c
> index 396c7c4..af7423f 100644
> --- a/drivers/staging/lustre/lnet/lnet/router_proc.c
> +++ b/drivers/staging/lustre/lnet/lnet/router_proc.c
> @@ -240,7 +240,7 @@ static int proc_lnet_routes(struct ctl_table *table, int write,
>  			unsigned int hops = route->lr_hops;
>  			unsigned int priority = route->lr_priority;
>  			lnet_nid_t nid = route->lr_gateway->lp_nid;
> -			int alive = route->lr_gateway->lp_alive;
> +			int alive = lnet_is_route_alive(route);

This line is the bugfix.

I know that people hate breaking patches up into reviewable patches but
this is a one line fix which is hidden behind 30 lines of unrelated
changes.  It makes it very hard to follow what is going on.

I have scripts to review checkpatch fixes basically automatically so it
really really helps me when people do one thing per patch.

regards,
dan carpenter

WARNING: multiple messages have this Message-ID (diff)
From: Dan Carpenter <dan.carpenter@oracle.com>
To: James Simmons <jsimmons@infradead.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	devel@driverdev.osuosl.org, Oleg Drokin <oleg.drokin@intel.com>,
	Andreas Dilger <andreas.dilger@intel.com>,
	Chris Horn <hornc@cray.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	lustre-devel@lists.lustre.org
Subject: Re: [PATCH 03/40] staging: lustre: reflect down routes in /proc/sys/lnet/routes
Date: Wed, 2 Dec 2015 10:54:10 +0300	[thread overview]
Message-ID: <20151202075410.GJ18797@mwanda> (raw)
In-Reply-To: <1448062576-23757-4-git-send-email-jsimmons@infradead.org>

On Fri, Nov 20, 2015 at 06:35:39PM -0500, James Simmons wrote:
> From: Chris Horn <hornc@cray.com>
> 
> We consider routes "down" if the router is down or the router
> NI for the target network is down. This should be reflected
> in the output of /proc/sys/lnet/routes
> 
> Signed-off-by: Chris Horn <hornc@cray.com>
> Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-3679
> Reviewed-on: http://review.whamcloud.com/7857
> Reviewed-by: Cory Spitz <spitzcor@cray.com>
> Reviewed-by: Isaac Huang <he.huang@intel.com>
> Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
> ---
>  .../staging/lustre/include/linux/lnet/lib-lnet.h   |   13 ++++++++
>  drivers/staging/lustre/lnet/lnet/lib-move.c        |   32 ++++++++++----------
>  drivers/staging/lustre/lnet/lnet/router_proc.c     |    2 +-
>  3 files changed, 30 insertions(+), 17 deletions(-)
> 
> diff --git a/drivers/staging/lustre/include/linux/lnet/lib-lnet.h b/drivers/staging/lustre/include/linux/lnet/lib-lnet.h
> index b61d504..09c6bfe 100644
> --- a/drivers/staging/lustre/include/linux/lnet/lib-lnet.h
> +++ b/drivers/staging/lustre/include/linux/lnet/lib-lnet.h
> @@ -64,6 +64,19 @@ extern lnet_t	the_lnet;	/* THE network */
>  /** exclusive lock */
>  #define LNET_LOCK_EX		CFS_PERCPT_LOCK_EX
>  
> +static inline int lnet_is_route_alive(lnet_route_t *route)
> +{
> +	/* gateway is down */
> +	if (!route->lr_gateway->lp_alive)
> +		return 0;
> +	/* no NI status, assume it's alive */
> +	if ((route->lr_gateway->lp_ping_feats &
> +	     LNET_PING_FEAT_NI_STATUS) == 0)
> +		return 1;
> +	/* has NI status, check # down NIs */
> +	return route->lr_downis == 0;
> +}
> +
>  static inline int lnet_is_wire_handle_none(lnet_handle_wire_t *wh)
>  {
>  	return (wh->wh_interface_cookie == LNET_WIRE_HANDLE_COOKIE_NONE &&
> diff --git a/drivers/staging/lustre/lnet/lnet/lib-move.c b/drivers/staging/lustre/lnet/lnet/lib-move.c
> index 7a68382..c56de44 100644
> --- a/drivers/staging/lustre/lnet/lnet/lib-move.c
> +++ b/drivers/staging/lustre/lnet/lnet/lib-move.c
> @@ -1122,9 +1122,9 @@ static lnet_peer_t *
>  lnet_find_route_locked(lnet_ni_t *ni, lnet_nid_t target, lnet_nid_t rtr_nid)
>  {
>  	lnet_remotenet_t *rnet;
> -	lnet_route_t *rtr;
> -	lnet_route_t *rtr_best;
> -	lnet_route_t *rtr_last;
> +	lnet_route_t *route;
> +	lnet_route_t *best_route;
> +	lnet_route_t *last_route;

Unrelated variable renaming.

>  	struct lnet_peer *lp_best;
>  	struct lnet_peer *lp;
>  	int rc;
> @@ -1137,13 +1137,12 @@ lnet_find_route_locked(lnet_ni_t *ni, lnet_nid_t target, lnet_nid_t rtr_nid)
>  		return NULL;
>  
>  	lp_best = NULL;
> -	rtr_best = rtr_last = NULL;
> -	list_for_each_entry(rtr, &rnet->lrn_routes, lr_list) {
> -		lp = rtr->lr_gateway;
> +	best_route = NULL;
> +	last_route = NULL;

Unrelated checkpatch fixes.

> +	list_for_each_entry(route, &rnet->lrn_routes, lr_list) {
> +		lp = route->lr_gateway;
>  
> -		if (!lp->lp_alive || /* gateway is down */
> -		    ((lp->lp_ping_feats & LNET_PING_FEAT_NI_STATUS) != 0 &&
> -		     rtr->lr_downis != 0)) /* NI to target is down */
> +		if (!lnet_is_route_alive(route))

This section is related to the patch, we moved the check out into its
own function.

>  			continue;
>  
>  		if (ni != NULL && lp->lp_ni != ni)
> @@ -1153,28 +1152,29 @@ lnet_find_route_locked(lnet_ni_t *ni, lnet_nid_t target, lnet_nid_t rtr_nid)
>  			return lp;
>  
>  		if (lp_best == NULL) {
> -			rtr_best = rtr_last = rtr;
> +			best_route = route;
> +			last_route = route;

More unrelated checkpatch fixes.

>  			lp_best = lp;
>  			continue;
>  		}
>  
>  		/* no protection on below fields, but it's harmless */
> -		if (rtr_last->lr_seq - rtr->lr_seq < 0)
> -			rtr_last = rtr;
> +		if (last_route->lr_seq - route->lr_seq < 0)
> +			last_route = route;
>  
> -		rc = lnet_compare_routes(rtr, rtr_best);
> +		rc = lnet_compare_routes(route, best_route);
>  		if (rc < 0)
>  			continue;
>  
> -		rtr_best = rtr;
> +		best_route = route;
>  		lp_best = lp;
>  	}
>  
>  	/* set sequence number on the best router to the latest sequence + 1
>  	 * so we can round-robin all routers, it's race and inaccurate but
>  	 * harmless and functional  */
> -	if (rtr_best != NULL)
> -		rtr_best->lr_seq = rtr_last->lr_seq + 1;
> +	if (best_route)

More checkpatch fixes.

> +		best_route->lr_seq = last_route->lr_seq + 1;
>  	return lp_best;
>  }
>  
> diff --git a/drivers/staging/lustre/lnet/lnet/router_proc.c b/drivers/staging/lustre/lnet/lnet/router_proc.c
> index 396c7c4..af7423f 100644
> --- a/drivers/staging/lustre/lnet/lnet/router_proc.c
> +++ b/drivers/staging/lustre/lnet/lnet/router_proc.c
> @@ -240,7 +240,7 @@ static int proc_lnet_routes(struct ctl_table *table, int write,
>  			unsigned int hops = route->lr_hops;
>  			unsigned int priority = route->lr_priority;
>  			lnet_nid_t nid = route->lr_gateway->lp_nid;
> -			int alive = route->lr_gateway->lp_alive;
> +			int alive = lnet_is_route_alive(route);

This line is the bugfix.

I know that people hate breaking patches up into reviewable patches but
this is a one line fix which is hidden behind 30 lines of unrelated
changes.  It makes it very hard to follow what is going on.

I have scripts to review checkpatch fixes basically automatically so it
really really helps me when people do one thing per patch.

regards,
dan carpenter


  reply	other threads:[~2015-12-02  7:54 UTC|newest]

Thread overview: 129+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-20 23:35 [lustre-devel] [PATCH 00/40] Sync upstream lustre client LNet core James Simmons
2015-11-20 23:35 ` James Simmons
2015-11-20 23:35 ` [lustre-devel] [PATCH 01/40] staging: lustre: drop *_t from end of struct lnet_text_buf James Simmons
2015-11-20 23:35   ` James Simmons
2015-11-20 23:35 ` [lustre-devel] [PATCH 02/40] staging: lustre: fix 'NULL pointer dereference' errors for LNet James Simmons
2015-11-20 23:35   ` James Simmons
2015-12-02  7:46   ` [lustre-devel] " Dan Carpenter
2015-12-02  7:46     ` Dan Carpenter
2015-12-15 18:08     ` [lustre-devel] " Simmons, James A.
2015-12-15 18:08       ` Simmons, James A.
2015-11-20 23:35 ` [lustre-devel] [PATCH 03/40] staging: lustre: reflect down routes in /proc/sys/lnet/routes James Simmons
2015-11-20 23:35   ` James Simmons
2015-12-02  7:54   ` Dan Carpenter [this message]
2015-12-02  7:54     ` Dan Carpenter
2015-11-20 23:35 ` [lustre-devel] [PATCH 04/40] staging: lustre: fix failure handle of create reply James Simmons
2015-11-20 23:35   ` James Simmons
2015-11-20 23:35 ` [lustre-devel] [PATCH 05/40] staging: lustre: eliminate obsolete Cray SeaStar support James Simmons
2015-11-20 23:35   ` James Simmons
2015-11-20 23:35 ` [lustre-devel] [PATCH 06/40] staging: lustre: remove uses of IS_ERR_VALUE() James Simmons
2015-11-20 23:35   ` James Simmons
2015-11-21 18:45   ` [lustre-devel] " Dan Carpenter
2015-11-21 18:45     ` Dan Carpenter
2015-11-20 23:35 ` [lustre-devel] [PATCH 07/40] staging: lustre: return +ve for blocked lnet message James Simmons
2015-11-20 23:35   ` James Simmons
2015-11-20 23:35 ` [lustre-devel] [PATCH 08/40] staging: lustre: do not memset after LIBCFS_ALLOC James Simmons
2015-11-20 23:35   ` James Simmons
2015-11-20 23:35 ` [lustre-devel] [PATCH 09/40] staging: lustre: Dynamic LNet Configuration (DLC) James Simmons
2015-11-20 23:35   ` James Simmons
2015-11-20 23:35 ` [lustre-devel] [PATCH 10/40] staging: lustre: Dynamic LNet Configuration (DLC) dynamic routing James Simmons
2015-11-20 23:35   ` James Simmons
2015-11-20 23:35 ` [lustre-devel] [PATCH 11/40] staging: lustre: DLC Feature dynamic net config James Simmons
2015-11-20 23:35   ` James Simmons
2015-12-02  9:23   ` [lustre-devel] " Dan Carpenter
2015-12-02  9:23     ` Dan Carpenter
2015-11-20 23:35 ` [lustre-devel] [PATCH 12/40] staging: lustre: Dynamic LNet Configuration (DLC) IOCTL changes James Simmons
2015-11-20 23:35   ` James Simmons
2015-12-02  9:48   ` [lustre-devel] " Dan Carpenter
2015-12-02  9:48     ` Dan Carpenter
2015-11-20 23:35 ` [lustre-devel] [PATCH 13/40] staging: lustre: Dynamic LNet Configuration (DLC) show command James Simmons
2015-11-20 23:35   ` James Simmons
2015-12-02 11:20   ` [lustre-devel] " Dan Carpenter
2015-12-02 11:20     ` Dan Carpenter
2015-12-15 18:14     ` [lustre-devel] " Simmons, James A.
2015-12-15 18:14       ` Simmons, James A.
2015-12-15 18:19       ` [lustre-devel] " Dan Carpenter
2015-12-15 18:19         ` Dan Carpenter
2015-12-15 18:39         ` [lustre-devel] " Simmons, James A.
2015-12-15 18:39           ` Simmons, James A.
2015-12-15 18:48       ` [lustre-devel] " Greg Kroah-Hartman
2015-12-15 18:48         ` Greg Kroah-Hartman
2015-12-15 19:48         ` [lustre-devel] " Simmons, James A.
2015-12-15 19:48           ` Simmons, James A.
2015-12-15 19:55           ` [lustre-devel] " 'Greg Kroah-Hartman'
2015-12-15 19:55             ` 'Greg Kroah-Hartman'
2015-12-02 12:00   ` [lustre-devel] " Dan Carpenter
2015-12-02 12:00     ` Dan Carpenter
2015-11-20 23:35 ` [lustre-devel] [PATCH 14/40] staging: lustre: fix crash due to NULL networks string James Simmons
2015-11-20 23:35   ` James Simmons
2015-12-02 11:27   ` [lustre-devel] " Dan Carpenter
2015-12-02 11:27     ` Dan Carpenter
2015-11-20 23:35 ` [lustre-devel] [PATCH 15/40] staging: lustre: DLC user/kernel space glue code James Simmons
2015-11-20 23:35   ` James Simmons
2015-12-02 12:11   ` [lustre-devel] " Dan Carpenter
2015-12-02 12:11     ` Dan Carpenter
2015-11-20 23:35 ` [lustre-devel] [PATCH 16/40] staging: lustre: make local functions static for LNet ni James Simmons
2015-11-20 23:35   ` James Simmons
2015-11-20 23:35 ` [lustre-devel] [PATCH 17/40] staging: lustre: add sparse annotation __user wherever needed for lnet James Simmons
2015-11-20 23:35   ` James Simmons
2015-11-20 23:35 ` [lustre-devel] [PATCH 18/40] staging: lustre: remove LUSTRE_{, SRV_}LNET_PID James Simmons
2015-11-20 23:35   ` [PATCH 18/40] staging: lustre: remove LUSTRE_{,SRV_}LNET_PID James Simmons
2015-11-20 23:35 ` [lustre-devel] [PATCH 19/40] staging: lustre: copy out libcfs ioctl inline buffer James Simmons
2015-11-20 23:35   ` James Simmons
2015-12-02 12:34   ` [lustre-devel] " Dan Carpenter
2015-12-02 12:34     ` Dan Carpenter
2015-11-20 23:35 ` [lustre-devel] [PATCH 20/40] staging: lustre: fix kernel crash when network failed to start James Simmons
2015-11-20 23:35   ` James Simmons
2015-12-02 12:44   ` [lustre-devel] " Dan Carpenter
2015-12-02 12:44     ` Dan Carpenter
2015-11-20 23:35 ` [lustre-devel] [PATCH 21/40] staging: lustre: improve LNet clean up code and API James Simmons
2015-11-20 23:35   ` James Simmons
2015-12-02 12:59   ` [lustre-devel] " Dan Carpenter
2015-12-02 12:59     ` Dan Carpenter
2015-12-02 13:20     ` [lustre-devel] " Alexander Zarochentsev
2015-12-02 13:20       ` Alexander Zarochentsev
2015-12-02 13:59       ` Dan Carpenter
2015-12-02 13:59         ` Dan Carpenter
2015-12-15 17:10     ` Simmons, James A.
2015-12-15 17:10       ` Simmons, James A.
2015-12-15 17:41       ` [lustre-devel] " Dan Carpenter
2015-12-15 17:41         ` Dan Carpenter
2015-11-20 23:35 ` [lustre-devel] [PATCH 22/40] staging: lustre: Fixes to make lnetctl function as expected James Simmons
2015-11-20 23:35   ` James Simmons
2015-11-20 23:35 ` [lustre-devel] [PATCH 23/40] staging: lustre: return appropriate errno when adding route James Simmons
2015-11-20 23:35   ` James Simmons
2015-11-20 23:36 ` [lustre-devel] [PATCH 24/40] staging: lustre: make some lnet functions static James Simmons
2015-11-20 23:36   ` James Simmons
2015-11-20 23:36 ` [lustre-devel] [PATCH 25/40] staging: lustre: missed a few cases of using NULL instead of 0 James Simmons
2015-11-20 23:36   ` James Simmons
2015-11-20 23:36 ` [lustre-devel] [PATCH 26/40] staging: lustre: startup lnet acceptor thread dynamically James Simmons
2015-11-20 23:36   ` James Simmons
2015-11-20 23:36 ` [lustre-devel] [PATCH 27/40] staging: lustre: reject invalid net configuration for lnet James Simmons
2015-11-20 23:36   ` James Simmons
2015-11-20 23:36 ` [lustre-devel] [PATCH 28/40] staging: lustre: return -EEXIST if NI is not unique James Simmons
2015-11-20 23:36   ` James Simmons
2015-11-20 23:36 ` [lustre-devel] [PATCH 29/40] staging: lustre: handle lnet_check_routes() errors James Simmons
2015-11-20 23:36   ` James Simmons
2015-11-20 23:36 ` [lustre-devel] [PATCH 30/40] staging: lustre: improvement to router checker James Simmons
2015-11-20 23:36   ` James Simmons
2015-11-20 23:36 ` [lustre-devel] [PATCH 31/40] staging: lustre: assume a kernel build James Simmons
2015-11-20 23:36   ` James Simmons
2015-11-20 23:36 ` [lustre-devel] [PATCH 32/40] staging: lustre: prevent assert on LNet module unload James Simmons
2015-11-20 23:36   ` James Simmons
2015-11-20 23:36 ` [lustre-devel] [PATCH 33/40] staging: lustre: remove messages from lazy portal on NI shutdown James Simmons
2015-11-20 23:36   ` James Simmons
2015-11-20 23:36 ` [lustre-devel] [PATCH 34/40] staging: lustre: remove unnecessary EXPORT_SYMBOL from lnet layer James Simmons
2015-11-20 23:36   ` James Simmons
2015-11-20 23:36 ` [lustre-devel] [PATCH 35/40] staging: lustre: avoid race during lnet acceptor thread termination James Simmons
2015-11-20 23:36   ` James Simmons
2015-11-20 23:36 ` [lustre-devel] [PATCH 36/40] staging: lustre: test for sk_sleep presence in compact-2.6.h James Simmons
2015-11-20 23:36   ` James Simmons
2015-11-20 23:36 ` [lustre-devel] [PATCH 37/40] staging: lustre: remove unnecessary NULL check in IOC_LIBCFS_GET_NET James Simmons
2015-11-20 23:36   ` James Simmons
2015-11-20 23:36 ` [lustre-devel] [PATCH 38/40] staging: lustre: Allocate the correct number of rtr buffers James Simmons
2015-11-20 23:36   ` James Simmons
2015-11-20 23:36 ` [lustre-devel] [PATCH 39/40] staging: lustre: Use lnet_is_route_alive for router aliveness James Simmons
2015-11-20 23:36   ` James Simmons
2015-11-20 23:36 ` [lustre-devel] [PATCH 40/40] staging: lustre: Remove LASSERTS from router checker James Simmons
2015-11-20 23:36   ` James Simmons
2015-12-21 23:41 ` [PATCH 00/40] Sync upstream lustre client LNet core Greg Kroah-Hartman

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=20151202075410.GJ18797@mwanda \
    --to=dan.carpenter@oracle.com \
    --cc=lustre-devel@lists.lustre.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.