]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
client: reencode cap releases for each request
authorSage Weil <sage.weil@dreamhost.com>
Tue, 26 Jul 2011 05:17:24 +0000 (22:17 -0700)
committerSage Weil <sage.weil@dreamhost.com>
Wed, 27 Jul 2011 03:44:17 +0000 (20:44 -0700)
commit79b8374de2c5c0b9ce8bd645a292c2f21b3b8df7
treea2d7872da97e7f9b09f8cca74bc348f70b017dab
parent2458c89664d0959c35cb0679b93b580ebab73c54
client: reencode cap releases for each request

I think commit f7170f9 was based on some of my bad advice.  Every time the
client sends a request, it should look at what caps it has that might
conflict with the operation and (if possible) release them with the
request.  I suspect I was confusing this with the case on the MDS side of
things where we only process the release(s) when we first receive the
message and not when it is deferred/retried.

Specifically, this fixes a problem where we send a request to mds A and
release some set of caps, A tells us to talk to B instead, and we resend
the same message with (old, now bogus) releases intended for A to B
instead, where they probably make no sense.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
src/client/Client.cc