]> 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>
Wed, 10 Aug 2011 22:38:42 +0000 (15:38 -0700)
commitfb774ca3f3c60a3f4e7aefa1c81ff44e9766766a
tree3def97a37a7f4c9da5a2f5c29417bf42673ed284
parent4a960e4d56e29bdfb1da750e6bd435f2651091f9
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