diff --git a/src/mds/Locker.cc b/src/mds/Locker.cc index 58c8795b7a849..0d29930decaaa 100644 --- a/src/mds/Locker.cc +++ b/src/mds/Locker.cc @@ -1052,8 +1052,8 @@ class C_Locker_Eval : public LockerContext { p->get(MDSCacheObject::PIN_PTRWAITER); } void finish(int r) override { - p->put(MDSCacheObject::PIN_PTRWAITER); locker->try_eval(p, mask); + p->put(MDSCacheObject::PIN_PTRWAITER); } }; @@ -1770,6 +1770,7 @@ class C_Locker_FileUpdate_finish : public LockerLogContext { } void finish(int r) override { locker->file_update_finish(in, mut, share, client, cap, ack); + in->put(CInode::PIN_PTRWAITER); } }; @@ -1778,7 +1779,6 @@ void Locker::file_update_finish(CInode *in, MutationRef& mut, bool share, client { dout(10) << "file_update_finish on " << *in << dendl; in->pop_and_dirty_projected_inode(mut->ls); - in->put(CInode::PIN_PTRWAITER); mut->apply(); @@ -2146,9 +2146,9 @@ class C_MDL_RequestInodeFileCaps : public LockerContext { in->get(CInode::PIN_PTRWAITER); } void finish(int r) override { - in->put(CInode::PIN_PTRWAITER); if (!in->is_auth()) locker->request_inode_file_caps(in); + in->put(CInode::PIN_PTRWAITER); } }; @@ -2225,9 +2225,9 @@ class C_MDL_CheckMaxSize : public LockerContext { in->get(CInode::PIN_PTRWAITER); } void finish(int r) override { - in->put(CInode::PIN_PTRWAITER); if (in->is_auth()) locker->check_inode_max_size(in, false, new_max_size, newsize, mtime); + in->put(CInode::PIN_PTRWAITER); } };