Skip to contentSkip to conversation

libceph: reformat __reset_osd()

PATCH In review Alex Elder 2 participants 2 messages Jan 3, 2013 – Jan 15, 2013 Ceph common code (libceph)

lore
Share & tools
lore

Alex Elder

author
#0 lore raw

PATCH 1/1 libceph: reformat __reset_osd()

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

---
 net/ceph/osd_client.c |   33 +++++++++++++++++++--------------
 1 file changed, 19 insertions(+), 14 deletions(-)
net/ceph/osd_client.c +0 -0
index eb9a444..5f9f65a 100644
@@ -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)

Signature · 1 line
1.7.9.5
Reviewed-by on v1 1/1
#1 lore raw
Quoted 5 lines · Alex Elder

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

---

Looks good. With one small duplication removed,

Quoted 43 lines
  net/ceph/osd_client.c |   33 +++++++++++++++++++--------------
  1 file changed, 19 insertions(+), 14 deletions(-)
net/ceph/osd_client.c +10 -11
index eb9a444..5f9f65a 100644
@@ -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,

net/ceph/osd_client.c static void remove_old_osds(struct ceph_osd_client · line 769

Quoted 10 lines
net/ceph/osd_client.c +6 -3
-			      &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.

Quoted 8 lines
net/ceph/osd_client.c +3 -0
+	osd->o_incarnation++;
+
+	return 0;
  }
 

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