]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
mds: always release snap cap after flushsnap
authorSage Weil <sage@newdream.net>
Fri, 7 May 2010 18:58:16 +0000 (11:58 -0700)
committerSage Weil <sage@newdream.net>
Fri, 7 May 2010 18:58:16 +0000 (11:58 -0700)
commit906d3e6740f843460a8ba1439bbd11d89c17208d
tree2ae214b5a9fed99958fee545c69d07201070bc91
parent76e40e3dfec6330ecec4ebcaf3e416c95e2fde5d
mds: always release snap cap after flushsnap

The old condition makes no sense.  It appears to have been broken since
2008, commit a5d5e679?  Yikes.

The problem is that a flushsnap will 'release' the caps, but still leave
an open Capability on the CInode.  Then, CInode::encode_inodestat() would
& issued() when issuing caps, and a client ceph_open() would get no
caps.  The kclient is fixed up to at least not crash in that case, but even
with the fix it deadlocked.
src/mds/Locker.cc