From 707a511d7c6aa19b84eeae916db22abb98db5c96 Mon Sep 17 00:00:00 2001 From: "Yan, Zheng" Date: Wed, 2 Jan 2019 15:48:04 +0800 Subject: [PATCH] mds: remove wrong assertion in Locker::snapflush_nudge head inode gets unpinned when snapflush starts. It might get trimmed before snapflush finishes. Fixes: http://tracker.ceph.com/issues/37721 Signed-off-by: "Yan, Zheng" (cherry picked from commit 75a872734cbbf2e8e9f24bf2ace3bdbf26bf7e75) Conflicts: src/mds/Locker.cc : Resolved in snapflush_nudge --- src/mds/Locker.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/mds/Locker.cc b/src/mds/Locker.cc index ae95f025743..1ce2461c986 100644 --- a/src/mds/Locker.cc +++ b/src/mds/Locker.cc @@ -2587,7 +2587,11 @@ void Locker::snapflush_nudge(CInode *in) return; CInode *head = mdcache->get_inode(in->ino()); - assert(head); + // head inode gets unpinned when snapflush starts. It might get trimmed + // before snapflush finishes. + if (!head) + return; + assert(head->is_auth()); if (head->client_need_snapflush.empty()) return; -- 2.47.3