diff mbox

[REPOST] libceph: reformat __reset_osd()

Message ID 50E5D5E3.1080306@inktank.com (mailing list archive)
State New, archived
Headers show

Commit Message

Alex Elder Jan. 3, 2013, 7:02 p.m. UTC
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(-)

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

Comments

Josh Durgin Jan. 15, 2013, 11:10 p.m. UTC | #1
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)
>

--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" 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/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;
 }