Re: 3.7.0-rc8 btrfs locking issue

2012-12-09 Thread Liu Bo
On Wed, Dec 05, 2012 at 09:07:05AM -0700, Jim Schutt wrote: > Hi, > > I'm hitting a btrfs locking issue with 3.7.0-rc8. > > The btrfs filesystem in question is backing a Ceph OSD > under a heavy write load from many cephfs clients. > > I reported this issue a while ago: > http://www.spinics.ne

Re: [ceph-commit] [ceph/ceph] e6a154: osx: compile on OSX

2012-12-09 Thread Gregory Farnum
Oooh, very nice! Do you have a list of the dependencies that you actually needed to install? Apart from breaking this up into smaller patches, we'll also want to reformat some of it. Rather than sticking an #if APPLE on top of every spin lock, we should have utility functions that do this for u

Re: [ceph-commit] [ceph/ceph] e6a154: osx: compile on OSX

2012-12-09 Thread Noah Watkins
On Sun, Dec 9, 2012 at 10:05 AM, Gregory Farnum wrote: > Oooh, very nice! Do you have a list of the dependencies that you actually > needed to install? I can put that together. They were boost, gperf, fuse4x, cryptopp. I think that might have been it. > Apart from breaking this up into smaller

Why cephx rather then kerberos?

2012-12-09 Thread Jonathan Proulx
Hi All, the docs continuously describe cephx as Kerberos-like, curious why Kereros isn't used instead. Developing new security protocols is almost always a bad idea from a security perspective. I haven't looked deeply into cephx to see how much is novel (and likely to contain novel bugs) ans how

[PATCH 4/4] libceph: init osd->o_node in create_osd()

2012-12-09 Thread Alex Elder
It turns out to be harmless but the red-black node o_node in the ceph osd structure is not initialized in create_osd(). Add a call to rb_init_node() initialize it. Signed-off-by: Alex Elder --- net/ceph/osd_client.c |1 + 1 file changed, 1 insertion(+) diff --git a/net/ceph/osd_client.c b/

[PATCH] rbd: remove linger unconditionally

2012-12-09 Thread Alex Elder
In __unregister_linger_request(), the request is being removed from the osd client's req_linger list only when the request has a non-null osd pointer. It should be done whether or not the request currently has an osd. This is most likely a non-issue because I believe the request will always have

[PATCH] libceph: reformat __reset_osd()

2012-12-09 Thread Alex Elder
Reformat __reset_osd() into three distinct blocks of code handling the three return cases. Signed-off-by: Alex Elder --- 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 i

[PATCH 2/4] libceph: register request before unregister linger

2012-12-09 Thread Alex Elder
In kick_requests(), we need to register the request before we unregister the linger request. Otherwise the unregister will reset the request's osd pointer to NULL. Signed-off-by: Alex Elder --- net/ceph/osd_client.c |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/ceph

[PATCH 0/4] libceph: four bug fixes

2012-12-09 Thread Alex Elder
This series includes two bug fixes that fix confirmed problems, and two other changes that are technically fix bugs but which probably won't cause any trouble. -Alex [PATCH 1/6] libceph: avoid using freed osd in __kick_osd_requests() [PATCH 2/6] libceph: re

[PATCH 3/4] libceph: socket can close in any connection state

2012-12-09 Thread Alex Elder
A connection's socket can close for any reason, independent of the state of the connection (and without irrespective of the connection mutex). As a result, the connectino can be in pretty much any state at the time its socket is closed. Handle those other cases at the top of con_work(). Pull thi

[PATCH 1/4] libceph: avoid using freed osd in __kick_osd_requests()

2012-12-09 Thread Alex Elder
If an osd has no requests and no linger requests, __reset_osd() will just remove it with a call to __remove_osd(). That drops a reference to the osd, and therefore the osd may have been free by the time __reset_osd() returns. That function offers no indication this may have occurred, and as a res