All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH REPOST] libceph: reformat __reset_osd()
@ 2013-01-03 19:02 Alex Elder
  2013-01-15 23:10 ` Josh Durgin
  0 siblings, 1 reply; 2+ messages in thread
From: Alex Elder @ 2013-01-03 19:02 UTC (permalink / raw)
  To: ceph-devel@vger.kernel.org

Reformat __reset_osd() into three distinct blocks of code
handling the three return cases.

Signed-off-by: Alex Elder <elder@inktank.com>
---
 net/ceph/osd_client.c |   33 +++++++++++++++++++--------------
 1 file changed, 19 insertions(+), 14 deletions(-)

diff --git a/net/ceph/osd_client.c b/net/ceph/osd_client.c
index eb9a444..5f9f65a 100644
--- a/net/ceph/osd_client.c
+++ b/net/ceph/osd_client.c
@@ -739,31 +739,36 @@ static void remove_old_osds(struct ceph_osd_client
*osdc)
  */
 static int __reset_osd(struct ceph_osd_client *osdc, struct ceph_osd *osd)
 {
-	struct ceph_osd_request *req;
-	int ret = 0;
+	struct ceph_entity_addr *peer_addr;

 	dout("__reset_osd %p osd%d\n", osd, osd->o_osd);
 	if (list_empty(&osd->o_requests) &&
 	    list_empty(&osd->o_linger_requests)) {
 		__remove_osd(osdc, osd);
-		ret = -ENODEV;
-	} else if (memcmp(&osdc->osdmap->osd_addr[osd->o_osd],
-			  &osd->o_con.peer_addr,
-			  sizeof(osd->o_con.peer_addr)) == 0 &&
-		   !ceph_con_opened(&osd->o_con)) {
+
+		return -ENODEV;
+	}
+
+	peer_addr = &osdc->osdmap->osd_addr[osd->o_osd];
+	if (!memcmp(peer_addr, &osd->o_con.peer_addr, sizeof (*peer_addr)) &&
+			!ceph_con_opened(&osd->o_con)) {
+		struct ceph_osd_request *req;
+
 		dout(" osd addr hasn't changed and connection never opened,"
 		     " letting msgr retry");
 		/* touch each r_stamp for handle_timeout()'s benfit */
 		list_for_each_entry(req, &osd->o_requests, r_osd_item)
 			req->r_stamp = jiffies;
-		ret = -EAGAIN;
-	} else {
-		ceph_con_close(&osd->o_con);
-		ceph_con_open(&osd->o_con, CEPH_ENTITY_TYPE_OSD, osd->o_osd,
-			      &osdc->osdmap->osd_addr[osd->o_osd]);
-		osd->o_incarnation++;
+
+		return -EAGAIN;
 	}
-	return ret;
+
+	ceph_con_close(&osd->o_con);
+	ceph_con_open(&osd->o_con, CEPH_ENTITY_TYPE_OSD, osd->o_osd,
+		      &osdc->osdmap->osd_addr[osd->o_osd]);
+	osd->o_incarnation++;
+
+	return 0;
 }

 static void __insert_osd(struct ceph_osd_client *osdc, struct ceph_osd
*new)
-- 
1.7.9.5


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH REPOST] libceph: reformat __reset_osd()
  2013-01-03 19:02 [PATCH REPOST] libceph: reformat __reset_osd() Alex Elder
@ 2013-01-15 23:10 ` Josh Durgin
  0 siblings, 0 replies; 2+ messages in thread
From: Josh Durgin @ 2013-01-15 23:10 UTC (permalink / raw)
  To: Alex Elder; +Cc: ceph-devel@vger.kernel.org

On 01/03/2013 11:02 AM, Alex Elder wrote:
> Reformat __reset_osd() into three distinct blocks of code
> handling the three return cases.
>
> Signed-off-by: Alex Elder <elder@inktank.com>
> ---

Looks good. With one small duplication removed,
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>

>   net/ceph/osd_client.c |   33 +++++++++++++++++++--------------
>   1 file changed, 19 insertions(+), 14 deletions(-)
>
> diff --git a/net/ceph/osd_client.c b/net/ceph/osd_client.c
> index eb9a444..5f9f65a 100644
> --- a/net/ceph/osd_client.c
> +++ b/net/ceph/osd_client.c
> @@ -739,31 +739,36 @@ static void remove_old_osds(struct ceph_osd_client
> *osdc)
>    */
>   static int __reset_osd(struct ceph_osd_client *osdc, struct ceph_osd *osd)
>   {
> -	struct ceph_osd_request *req;
> -	int ret = 0;
> +	struct ceph_entity_addr *peer_addr;
>
>   	dout("__reset_osd %p osd%d\n", osd, osd->o_osd);
>   	if (list_empty(&osd->o_requests) &&
>   	    list_empty(&osd->o_linger_requests)) {
>   		__remove_osd(osdc, osd);
> -		ret = -ENODEV;
> -	} else if (memcmp(&osdc->osdmap->osd_addr[osd->o_osd],
> -			  &osd->o_con.peer_addr,
> -			  sizeof(osd->o_con.peer_addr)) == 0 &&
> -		   !ceph_con_opened(&osd->o_con)) {
> +
> +		return -ENODEV;
> +	}
> +
> +	peer_addr = &osdc->osdmap->osd_addr[osd->o_osd];
> +	if (!memcmp(peer_addr, &osd->o_con.peer_addr, sizeof (*peer_addr)) &&
> +			!ceph_con_opened(&osd->o_con)) {
> +		struct ceph_osd_request *req;
> +
>   		dout(" osd addr hasn't changed and connection never opened,"
>   		     " letting msgr retry");
>   		/* touch each r_stamp for handle_timeout()'s benfit */
>   		list_for_each_entry(req, &osd->o_requests, r_osd_item)
>   			req->r_stamp = jiffies;
> -		ret = -EAGAIN;
> -	} else {
> -		ceph_con_close(&osd->o_con);
> -		ceph_con_open(&osd->o_con, CEPH_ENTITY_TYPE_OSD, osd->o_osd,
> -			      &osdc->osdmap->osd_addr[osd->o_osd]);
> -		osd->o_incarnation++;
> +
> +		return -EAGAIN;
>   	}
> -	return ret;
> +
> +	ceph_con_close(&osd->o_con);
> +	ceph_con_open(&osd->o_con, CEPH_ENTITY_TYPE_OSD, osd->o_osd,
> +		      &osdc->osdmap->osd_addr[osd->o_osd]);

This is peer_addr again.

> +	osd->o_incarnation++;
> +
> +	return 0;
>   }
>
>   static void __insert_osd(struct ceph_osd_client *osdc, struct ceph_osd
> *new)
>


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2013-01-15 23:11 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-01-03 19:02 [PATCH REPOST] libceph: reformat __reset_osd() Alex Elder
2013-01-15 23:10 ` Josh Durgin

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.