Skip to content

more libceph changes

Alex Elder ceph-devel 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest12 patches 3 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/12libceph: SOCK_CLOSED is a flag, not a statenet/ceph/messenger.c+2 -20 replies
2/12libceph: don't change socket state on sock eventnet/ceph/messenger.c+9 -90 replies
3/12libceph: just set SOCK_CLOSED when state changesnet/ceph/messenger.c+2 -20 replies
4/12libceph: don't touch con state in con_close_socket()net/ceph/messenger.c+7 -10 replies
5/12libceph: clear CONNECTING in ceph_con_close()net/ceph/messenger.c+2 -10 replies
6/12libceph: clear NEGOTIATING when donenet/ceph/messenger.c+5 -30 replies
7/12libceph: define and use an explicit CONNECTED stateinclude/linux/ceph/messenger.h net/ceph/messenger.c+8 -20 replies
8/12libceph: separate banner and connect writesnet/ceph/messenger.c+11 -90 replies
9/12libceph: distinguish two phases of connect sequencenet/ceph/messenger.c+26 -222 replies
10/12libceph: small changes to messenger.cnet/ceph/messenger.c+31 -320 replies
11/12libceph: make ceph_con_get() (etc.) privateinclude/linux/ceph/messenger.h net/ceph/messenger.c+24 -261 reply
12/12libceph: add some fine ASCII artnet/ceph/messenger.c+41 -10 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH 00/12] more libceph changes

I'm trying to wrap up a lot of work I've done recently on the Ceph client messenger code. I had a number of loose ends that never got committed along the way as I narrowed my focus to things I discovered in the course of development.

I still have a few more, but here is another batch which are ready to go, having undergone several hours of testing without any problems. They are based on the code resulting from this series, which I submitted the other day:
[PATCH 0/6] ceph: a few more messenger cleanups

They're a bit of a random collection, but I've put them into several sort of related groups in the descriptions below.

-Alex

[PATCH 01/12] libceph: SOCK_CLOSED is a flag, not a state
This fixes a bug in which the SOCK_CLOSED bit was erroneously being manipulated in a ceph connection's "state" field.

[PATCH 02/12] libceph: don't change socket state on sock event
This moves the setting of a ceph connection's error_msg value out of the socket event handler.

[PATCH 03/12] libceph: just set SOCK_CLOSED when state changes
This makes it so the SOCK_CLOSED bit is set, rather than test-and-set, when the underlying Linux socket has closed
[PATCH 04/12] libceph: don't touch con state in con_close_socket()
This drops the slightly puzzling setting and clearing of the SOCK_CLOSED bit in con_close_socket()

[PATCH 05/12] libceph: clear CONNECTING in ceph_con_close()
This takes a step toward making the state bits always reflect the real state of a connection.
[PATCH 06/12] libceph: clear NEGOTIATING when done
The NEGOTIATING state was never getting cleared until just before a new connection attempt was initiated.
[PATCH 07/12] libceph: define and use an explicit CONNECTED state
This just defines a state to reflect when a ceph connection is fully connected to its peer.

[PATCH 08/12] libceph: separate banner and connect writes
This splits up how some connection negotiation information gets sent when a client initiates a new connect sequence.
[PATCH 09/12] libceph: distinguish two phases of connect sequence
This makes the banner and IP exchange portion of a connect sequence get treated as distinct state (NEGOTIATING), rather than being a sort of sub-state of CONNECTING.

[PATCH 10/12] libceph: small changes to messenger.c
This just gathers a number of minor cleanups.
[PATCH 11/12] libceph: make ceph_con_get() (etc.) private
This makes ceph_con_get() and ceph_con_put() have static scope, since they are only used in "messenger.c".
[PATCH 12/12] libceph: add some fine ASCII art
This inserts a state diagram for a ceph connection socket into comments in "messenger.c".