From: Yan, Zheng Date: Sun, 4 May 2014 15:06:32 +0000 (+0800) Subject: mds: switch flushing ScatterLock to dirty ScatterLock after cache rejoin X-Git-Tag: v0.81~47^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=3ca0d01801a314f9338f24b22bc46291ed21144c;p=ceph.git mds: switch flushing ScatterLock to dirty ScatterLock after cache rejoin Otherwise the flushing flag may confuse Locker::eval_gather() if MDS later imports lock's parent inode. Signed-off-by: Yan, Zheng --- diff --git a/src/mds/ScatterLock.h b/src/mds/ScatterLock.h index a85caa824ac..2d17b567bc5 100644 --- a/src/mds/ScatterLock.h +++ b/src/mds/ScatterLock.h @@ -201,6 +201,14 @@ public: ::encode(s, bl); } + void decode_state_rejoin(bufferlist::iterator& p, list& waiters) { + SimpleLock::decode_state_rejoin(p, waiters); + if (is_flushing()) { + set_dirty(); + clear_flushing(); + } + } + bool remove_replica(int from, bool rejoin) { if (rejoin && (state == LOCK_MIX ||