]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
mds: incorporate reconnect cap info after requests replay if ino originally missing
authorSage Weil <sage@newdream.net>
Sat, 7 Mar 2009 00:25:04 +0000 (16:25 -0800)
committerSage Weil <sage@newdream.net>
Sat, 7 Mar 2009 00:27:18 +0000 (16:27 -0800)
commitcd41295f53f7aed647e3a9904d762e3453c564e1
treeb6bb1b88c926a7a5a4bfe6ad5b0e447559bc26e9
parentb88f450eccb6f2c4947a0ca0fd4ee6ce00d3e991
mds: incorporate reconnect cap info after requests replay if ino originally missing

If the client reasserts caps from replayed requests, the inodes don't yet
exists during the reconnect (or even rejoin) stage.  So, if we don't find
the inode, keep the reconnect info around.  When processing a replayed
request in CInode::encode_inodestat, set wanted/issued appropriately.

This is incomplete.  We really need something to ensure we deal with
replayed requests before new requests are handled.. and on a cluster-wide
basis, since requests may involve slave requests to other mds's.

We also should clean up reconnects unclaimed after all replays are
complete.  And somehow inform the client when the cap is officially
nonexistent and EBADF.
src/TODO
src/include/ceph_fs.h
src/mds/CInode.cc
src/mds/CInode.h
src/mds/MDCache.cc
src/mds/MDCache.h
src/mds/Server.cc
src/mds/Server.h
src/messages/MClientRequest.h