<feed xmlns='http://www.w3.org/2005/Atom'>
<title>talos-op-linux/include/linux/ceph, branch v3.6</title>
<subtitle>Talos™ II Linux sources for OpenPOWER</subtitle>
<id>https://git.raptorcs.com/git/talos-op-linux/atom?h=v3.6</id>
<link rel='self' href='https://git.raptorcs.com/git/talos-op-linux/atom?h=v3.6'/>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/'/>
<updated>2012-07-31T01:16:01+00:00</updated>
<entry>
<title>libceph: clean up con flags</title>
<updated>2012-07-31T01:16:01+00:00</updated>
<author>
<name>Sage Weil</name>
<email>sage@inktank.com</email>
</author>
<published>2012-07-21T00:29:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/commit/?id=4a8616920860920abaa51193146fe36b38ef09aa'/>
<id>urn:sha1:4a8616920860920abaa51193146fe36b38ef09aa</id>
<content type='text'>
Rename flags with CON_FLAG prefix, move the definitions into the c file,
and (better) document their meaning.

Signed-off-by: Sage Weil &lt;sage@inktank.com&gt;
</content>
</entry>
<entry>
<title>libceph: replace connection state bits with states</title>
<updated>2012-07-31T01:16:00+00:00</updated>
<author>
<name>Sage Weil</name>
<email>sage@inktank.com</email>
</author>
<published>2012-07-21T00:24:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/commit/?id=8dacc7da69a491c515851e68de6036f21b5663ce'/>
<id>urn:sha1:8dacc7da69a491c515851e68de6036f21b5663ce</id>
<content type='text'>
Use a simple set of 6 enumerated values for the socket states (CON_STATE_*)
and use those instead of the state bits.  All of the con-&gt;state checks are
now under the protection of the con mutex, so this is safe.  It also
simplifies many of the state checks because we can check for anything other
than the expected state instead of various bits for races we can think of.

This appears to hold up well to stress testing both with and without socket
failure injection on the server side.

Signed-off-by: Sage Weil &lt;sage@inktank.com&gt;
</content>
</entry>
<entry>
<title>ceph: define snap counts as u32 everywhere</title>
<updated>2012-07-31T01:15:47+00:00</updated>
<author>
<name>Alex Elder</name>
<email>elder@inktank.com</email>
</author>
<published>2012-07-14T01:35:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/commit/?id=aa711ee3402ad10ffd5b70ce0417fadc9a95cccf'/>
<id>urn:sha1:aa711ee3402ad10ffd5b70ce0417fadc9a95cccf</id>
<content type='text'>
There are two structures in which a count of snapshots are
maintained:

    struct ceph_snap_context {
	...
        u32 num_snaps;
	...
    }
and
    struct ceph_snap_realm {
	...
        u32 num_prior_parent_snaps;   /*  had prior to parent_since */
	...
        u32 num_snaps;
	...
    }

These fields never take on negative values (e.g., to hold special
meaning), and so are really inherently unsigned.  Furthermore they
take their value from over-the-wire or on-disk formatted 32-bit
values.

So change their definition to have type u32, and change some spots
elsewhere in the code to account for this change.

Signed-off-by: Alex Elder &lt;elder@inktank.com&gt;
Reviewed-by: Josh Durgin &lt;josh.durgin@inktank.com&gt;
</content>
</entry>
<entry>
<title>libceph: support crush tunables</title>
<updated>2012-07-31T01:15:23+00:00</updated>
<author>
<name>Sage Weil</name>
<email>sage@inktank.com</email>
</author>
<published>2012-07-31T01:15:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/commit/?id=546f04ef716dd49521774653d8b032a7d64c05d9'/>
<id>urn:sha1:546f04ef716dd49521774653d8b032a7d64c05d9</id>
<content type='text'>
The server side recently added support for tuning some magic
crush variables. Decode these variables if they are present, or use the
default values if they are not present.

Corresponds to ceph.git commit 89af369c25f274fe62ef730e5e8aad0c54f1e5a5.

Signed-off-by: caleb miles &lt;caleb.miles@inktank.com&gt;
Reviewed-by: Sage Weil &lt;sage@inktank.com&gt;
Reviewed-by: Alex Elder &lt;elder@inktank.com&gt;
Reviewed-by: Yehuda Sadeh &lt;yehuda@inktank.com&gt;
</content>
</entry>
<entry>
<title>libceph: move feature bits to separate header</title>
<updated>2012-07-30T23:23:22+00:00</updated>
<author>
<name>Sage Weil</name>
<email>sage@inktank.com</email>
</author>
<published>2012-07-30T23:23:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/commit/?id=1fe60e51a3744528f3939b1b1167ca909133d9ae'/>
<id>urn:sha1:1fe60e51a3744528f3939b1b1167ca909133d9ae</id>
<content type='text'>
This is simply cleanup that will keep things more closely synced with the
userland code.

Signed-off-by: Sage Weil &lt;sage@inktank.com&gt;
Reviewed-by: Alex Elder &lt;elder@inktank.com&gt;
Reviewed-by: Yehuda Sadeh &lt;yehuda@inktank.com&gt;
</content>
</entry>
<entry>
<title>libceph: define ceph_extract_encoded_string()</title>
<updated>2012-07-30T16:29:57+00:00</updated>
<author>
<name>Alex Elder</name>
<email>elder@inktank.com</email>
</author>
<published>2012-07-11T13:24:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/commit/?id=f8c36c58accd5c53a472b5c289910565b3df9f9d'/>
<id>urn:sha1:f8c36c58accd5c53a472b5c289910565b3df9f9d</id>
<content type='text'>
This adds a new utility routine which will return a dynamically-
allocated buffer containing a string that has been decoded from ceph
over-the-wire format.  It also returns the length of the string
if the address of a size variable is supplied to receive it.

Signed-off-by: Alex Elder &lt;elder@inktank.com&gt;
Reviewed-by: Sage Weil &lt;sage@inktank.com&gt;
</content>
</entry>
<entry>
<title>libceph: fix off-by-one bug in ceph_encode_filepath()</title>
<updated>2012-07-30T16:29:55+00:00</updated>
<author>
<name>Alex Elder</name>
<email>elder@inktank.com</email>
</author>
<published>2012-07-03T21:01:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/commit/?id=c61a1abd215c1ccd6fa73104c79e79987ed3aa98'/>
<id>urn:sha1:c61a1abd215c1ccd6fa73104c79e79987ed3aa98</id>
<content type='text'>
There is a BUG_ON() call that doesn't account for the single byte
structure version at the start of an encoded filepath in
ceph_encode_filepath().  Fix that.

Signed-off-by: Alex Elder &lt;elder@inktank.com&gt;
Reviewed-by: Yehuda Sadeh &lt;yehuda@inktank.com&gt;
Reviewed-by: Josh Durgin &lt;josh.durgin@inktank.com&gt;
</content>
</entry>
<entry>
<title>libceph: prevent the race of incoming work during teardown</title>
<updated>2012-07-30T16:29:53+00:00</updated>
<author>
<name>Guanjun He</name>
<email>gjhe@suse.com</email>
</author>
<published>2012-07-09T02:50:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/commit/?id=a2a3258417eb6a1799cf893350771428875a8287'/>
<id>urn:sha1:a2a3258417eb6a1799cf893350771428875a8287</id>
<content type='text'>
Add an atomic variable 'stopping' as flag in struct ceph_messenger,
set this flag to 1 in function ceph_destroy_client(), and add the condition code
in function ceph_data_ready() to test the flag value, if true(1), just return.

Signed-off-by: Guanjun He &lt;gjhe@suse.com&gt;
Reviewed-by: Sage Weil &lt;sage@inktank.com&gt;
</content>
</entry>
<entry>
<title>libceph: fix messenger retry</title>
<updated>2012-07-30T16:29:52+00:00</updated>
<author>
<name>Sage Weil</name>
<email>sage@inktank.com</email>
</author>
<published>2012-07-10T18:53:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/commit/?id=a16cb1f70799c851410d9dca0a24122e258df06c'/>
<id>urn:sha1:a16cb1f70799c851410d9dca0a24122e258df06c</id>
<content type='text'>
In ancient times, the messenger could both initiate and accept connections.
An artifact if that was data structures to store/process an incoming
ceph_msg_connect request and send an outgoing ceph_msg_connect_reply.
Sadly, the negotiation code was referencing those structures and ignoring
important information (like the peer's connect_seq) from the correct ones.

Among other things, this fixes tight reconnect loops where the server sends
RETRY_SESSION and we (the client) retries with the same connect_seq as last
time.  This bug pretty easily triggered by injecting socket failures on the
MDS and running some fs workload like workunits/direct_io/test_sync_io.

Signed-off-by: Sage Weil &lt;sage@inktank.com&gt;
</content>
</entry>
<entry>
<title>libceph: initialize msgpool message types</title>
<updated>2012-07-30T16:29:50+00:00</updated>
<author>
<name>Sage Weil</name>
<email>sage@inktank.com</email>
</author>
<published>2012-07-09T21:22:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/commit/?id=d50b409fb8698571d8209e5adfe122e287e31290'/>
<id>urn:sha1:d50b409fb8698571d8209e5adfe122e287e31290</id>
<content type='text'>
Initialize the type field for messages in a msgpool.  The caller was doing
this for osd ops, but not for the reply messages.

Reported-by: Alex Elder &lt;elder@inktank.com&gt;
Signed-off-by: Sage Weil &lt;sage@inktank.com&gt;
</content>
</entry>
</feed>
