From: Yan, Zheng Date: Tue, 7 Aug 2018 03:39:04 +0000 (+0800) Subject: mds: clear scatterlock's flushed when removing dirty X-Git-Tag: v12.2.9~88^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=362e9f68b8e7ab158956eb7ae06eec4f1d00647b;p=ceph.git mds: clear scatterlock's flushed when removing dirty If mds imports scatterlock's parent inode later, the leftover flushed flag may prevent Locker::eval_gather from calling scatter_writebehind and result incorrect dirstat/neststat. Signed-off-by: "Yan, Zheng" --- diff --git a/src/mds/ScatterLock.h b/src/mds/ScatterLock.h index ab963986bbc2..d7c7380b0f11 100644 --- a/src/mds/ScatterLock.h +++ b/src/mds/ScatterLock.h @@ -148,12 +148,13 @@ public: } } } + void clear_flushed() override { + state_flags &= ~FLUSHED; + } void remove_dirty() { start_flush(); finish_flush(); - } - void clear_flushed() override { - state_flags &= ~FLUSHED; + clear_flushed(); } void infer_state_from_strong_rejoin(int rstate, bool locktoo) {