]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
mds: don't wait for lock 'flushing' flag on replicas
authorSage Weil <sage@newdream.net>
Wed, 10 Aug 2011 22:38:25 +0000 (15:38 -0700)
committerSage Weil <sage@newdream.net>
Thu, 11 Aug 2011 17:06:27 +0000 (10:06 -0700)
commit009968efa50f93da9c50cb48a74c4572769a101f
treea7f7350084bfeba8911bc00f6437c26a9b24be51
parentbbd4a26a270a14524ee74b589bbc07c44ed43aca
mds: don't wait for lock 'flushing' flag on replicas

If we are a replica, the 'flushing' means that we had dirty scatterlock
data and are waiting for it to get flushed out to the auth copy (by
cycling from MIX->LOCK, normally).  If we end up with 'flushing' set
while in the MIX state, we can't wait for it to clear before responding
to a lock request from the primary or we'll deadlock.

On the auth, flushing means flushing to the log, which makes sense; that
will always make progress despite scatterlock activity.

This fixes a hang from 3-mds fsstress with thrashing exports.  (Strangely
I never hit this on fatty.)

Signed-off-by: Sage Weil <sage@newdream.net>
src/mds/Locker.cc