Fixes: https://tracker.ceph.com/issues/46682
Signed-off-by: Xiubo Li <xiubli@redhat.com>
void Client::_unmount(bool abort)
{
- std::unique_lock lock{client_lock, std::adopt_lock};
+ std::unique_lock lock{client_lock};
if (unmounting)
return;
mounted = false;
- lock.release();
ldout(cct, 2) << "unmounted." << dendl;
}
void Client::unmount()
{
- std::lock_guard lock(client_lock);
_unmount(false);
}
void Client::abort_conn()
{
- std::lock_guard lock(client_lock);
_unmount(true);
}
": delegation return timeout for inode 0x" <<
std::hex << in->ino << ". Forcibly unmounting client. "<<
client << std::dec << dendl;
- std::scoped_lock l(client->client_lock);
client->_unmount(false);
}
};