Re: [PATCH REPOST] libceph: reformat __reset_osd()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxx>
---

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

  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@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux