Reviewed-by: Sage Weil <sage@xxxxxxxxxxx> On Wed, 30 May 2012, Alex Elder wrote: > Move the initialization of a ceph connection's private pointer, > operations vector pointer, and peer name information into > ceph_con_init(). Rearrange the arguments so the connection pointer > is first. Hide the byte-swapping of the peer entity number inside > ceph_con_init() > > Signed-off-by: Alex Elder <elder@xxxxxxxxxxx> > --- > fs/ceph/mds_client.c | 7 ++----- > include/linux/ceph/messenger.h | 6 ++++-- > net/ceph/messenger.c | 9 ++++++++- > net/ceph/mon_client.c | 8 +++----- > net/ceph/osd_client.c | 7 ++----- > 5 files changed, 19 insertions(+), 18 deletions(-) > > diff --git a/fs/ceph/mds_client.c b/fs/ceph/mds_client.c > index ad30261..ecd7f15 100644 > --- a/fs/ceph/mds_client.c > +++ b/fs/ceph/mds_client.c > @@ -394,11 +394,8 @@ static struct ceph_mds_session *register_session(struct > ceph_mds_client *mdsc, > s->s_seq = 0; > mutex_init(&s->s_mutex); > > - ceph_con_init(&mdsc->fsc->client->msgr, &s->s_con); > - s->s_con.private = s; > - s->s_con.ops = &mds_con_ops; > - s->s_con.peer_name.type = CEPH_ENTITY_TYPE_MDS; > - s->s_con.peer_name.num = cpu_to_le64(mds); > + ceph_con_init(&s->s_con, s, &mds_con_ops, &mdsc->fsc->client->msgr, > + CEPH_ENTITY_TYPE_MDS, mds); > > spin_lock_init(&s->s_gen_ttl_lock); > s->s_cap_gen = 0; > diff --git a/include/linux/ceph/messenger.h b/include/linux/ceph/messenger.h > index 5e852f4..dd27837 100644 > --- a/include/linux/ceph/messenger.h > +++ b/include/linux/ceph/messenger.h > @@ -227,8 +227,10 @@ extern void ceph_messenger_init(struct ceph_messenger > *msgr, > u32 required_features, > bool nocrc); > > -extern void ceph_con_init(struct ceph_messenger *msgr, > - struct ceph_connection *con); > +extern void ceph_con_init(struct ceph_connection *con, void *private, > + const struct ceph_connection_operations *ops, > + struct ceph_messenger *msgr, __u8 entity_type, > + __u64 entity_num); > extern void ceph_con_open(struct ceph_connection *con, > struct ceph_entity_addr *addr); > extern bool ceph_con_opened(struct ceph_connection *con); > diff --git a/net/ceph/messenger.c b/net/ceph/messenger.c > index 7e11b07..cdf8299 100644 > --- a/net/ceph/messenger.c > +++ b/net/ceph/messenger.c > @@ -514,15 +514,22 @@ void ceph_con_put(struct ceph_connection *con) > /* > * initialize a new connection. > */ > -void ceph_con_init(struct ceph_messenger *msgr, struct ceph_connection *con) > +void ceph_con_init(struct ceph_connection *con, void *private, > + const struct ceph_connection_operations *ops, > + struct ceph_messenger *msgr, __u8 entity_type, __u64 entity_num) > { > dout("con_init %p\n", con); > memset(con, 0, sizeof(*con)); > + con->private = private; > atomic_set(&con->nref, 1); > + con->ops = ops; > con->msgr = msgr; > > con_sock_state_init(con); > > + con->peer_name.type = (__u8) entity_type; > + con->peer_name.num = cpu_to_le64(entity_num); > + > mutex_init(&con->mutex); > INIT_LIST_HEAD(&con->out_queue); > INIT_LIST_HEAD(&con->out_sent); > diff --git a/net/ceph/mon_client.c b/net/ceph/mon_client.c > index 77da480..9b4cef9 100644 > --- a/net/ceph/mon_client.c > +++ b/net/ceph/mon_client.c > @@ -142,11 +142,9 @@ static int __open_session(struct ceph_mon_client *monc) > monc->sub_renew_after = jiffies; /* i.e., expired */ > monc->want_next_osdmap = !!monc->want_next_osdmap; > > - ceph_con_init(&monc->client->msgr, &monc->con); > - monc->con.private = monc; > - monc->con.ops = &mon_con_ops; > - monc->con.peer_name.type = CEPH_ENTITY_TYPE_MON; > - monc->con.peer_name.num = cpu_to_le64(monc->cur_mon); > + ceph_con_init(&monc->con, monc, &mon_con_ops, > + &monc->client->msgr, > + CEPH_ENTITY_TYPE_MON, monc->cur_mon); > > dout("open_session mon%d opening\n", monc->cur_mon); > ceph_con_open(&monc->con, > diff --git a/net/ceph/osd_client.c b/net/ceph/osd_client.c > index e30efbc..1f3951a 100644 > --- a/net/ceph/osd_client.c > +++ b/net/ceph/osd_client.c > @@ -640,11 +640,8 @@ static struct ceph_osd *create_osd(struct ceph_osd_client > *osdc, int onum) > INIT_LIST_HEAD(&osd->o_osd_lru); > osd->o_incarnation = 1; > > - ceph_con_init(&osdc->client->msgr, &osd->o_con); > - osd->o_con.private = osd; > - osd->o_con.ops = &osd_con_ops; > - osd->o_con.peer_name.type = CEPH_ENTITY_TYPE_OSD; > - osd->o_con.peer_name.num = cpu_to_le64(onum); > + ceph_con_init(&osd->o_con, osd, &osd_con_ops, &osdc->client->msgr, > + CEPH_ENTITY_TYPE_OSD, onum); > > INIT_LIST_HEAD(&osd->o_keepalive_item); > return osd; > -- > 1.7.5.4 > > -- > 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 > > -- 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