]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: fix cap release seq check
authorSage Weil <sage@newdream.net>
Tue, 6 Jan 2009 20:45:24 +0000 (12:45 -0800)
committerSage Weil <sage@newdream.net>
Tue, 6 Jan 2009 20:45:24 +0000 (12:45 -0800)
src/mds/Locker.cc

index 2e5e8f2ec1ac7bbe51bd49357560cece1e9df737..3e5896a32ac5a932a55fb8697b89645d8f74cdd0 100644 (file)
@@ -1086,13 +1086,14 @@ void Locker::handle_client_caps(MClientCaps *m)
                            m->get_caps(), 0, m->get_dirty(), 0);
     }
     if (m->get_caps() == 0) {
-      if (m->get_seq() < cap->get_last_issue()) {
+      assert(m->get_seq() <= cap->get_last_issue());
+      if (m->get_seq() == cap->get_last_issue()) {
        dout(7) << " releasing request client" << client << " seq " << m->get_seq() << " on " << *in << dendl;
        cap->releasing++;
        releasecap = m->get_seq();
       } else {
        dout(7) << " NOT releasing request client" << client << " seq " << m->get_seq()
-               << " (issue race) on " << *in << dendl;
+               << " < last_issue " << cap->get_last_issue() << " on " << *in << dendl;
       }
     }
     if (wanted != cap->wanted()) {