]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
mds: start file recovery after sending rejoin ack
authorSage Weil <sage@newdream.net>
Mon, 29 Mar 2010 23:26:54 +0000 (16:26 -0700)
committerSage Weil <sage@newdream.net>
Mon, 29 Mar 2010 23:26:54 +0000 (16:26 -0700)
commitd5574993f4d7fddac858a51ccaf2ce0475e3e367
treea4c30a43b945819bda8ac28d36211bda91731e8c
parent65d3f3fd830dadfd542f9a0eeb59ff405eacfadd
mds: start file recovery after sending rejoin ack

The rejoin ack intializes replica lock states correctly; we can't send any
lock messages before that.  This fixes both the check max size call (which
sends lock messages taking the wrlock) and the file_recover() call
(which does the same).

Instead, we make two lists, files to recover and those to fix up.  The lock
states for both are set to PRE_SCAN (LOCK on replica).  After the rejoin
acks go out, we either check_inode_max_size or file_recover.

If file_recover someday grows another caller, this may need something a bit
more sophisticated.
src/mds/Locker.cc
src/mds/MDCache.cc
src/mds/MDCache.h