]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
mds: fix MDSTableClient ack double journaling
authorSage Weil <sage@newdream.net>
Tue, 30 Mar 2010 17:30:02 +0000 (10:30 -0700)
committerSage Weil <sage@newdream.net>
Tue, 30 Mar 2010 17:30:02 +0000 (10:30 -0700)
commit58ce32cc84a82619108bf3496e0175b221b9e9a2
tree505bcf4c1d1cda00872a054986b8261ff2753aa6
parentd5574993f4d7fddac858a51ccaf2ce0475e3e367
mds: fix MDSTableClient ack double journaling

Do not journal ack unless the tid is registered in the LogSegment.  Once
we journal it, we remove it from the LogSegment list, and once it's
journaled, we remove the pending_commit[tid] entry.

This fixes a bug where the mds got two acks, journaled both of them, and
crashed in the completion for the second because pending_commit[tid] was
gone.  The second ack should have been ignored.
src/mds/MDSTableClient.cc