From cf57e06697dfcf180090265b87c5c2fd8b5d5fa7 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Wed, 27 May 2009 10:43:25 -0700 Subject: [PATCH] filestore: stop sync thread before journal Otherwise we get sync thread interaction with freed journal. --- src/os/FileJournal.cc | 2 +- src/os/FileStore.cc | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/os/FileJournal.cc b/src/os/FileJournal.cc index c832cc5e5a5a6..7d1e89a2cbf2b 100644 --- a/src/os/FileJournal.cc +++ b/src/os/FileJournal.cc @@ -24,7 +24,7 @@ #define DOUT_SUBSYS journal #undef dout_prefix -#define dout_prefix *_dout << dbeginl << "journal " +#define dout_prefix *_dout << dbeginl << pthread_self() << " journal " int FileJournal::_open(bool forwrite, bool create) diff --git a/src/os/FileStore.cc b/src/os/FileStore.cc index ab751f200a917..f7f537397a370 100644 --- a/src/os/FileStore.cc +++ b/src/os/FileStore.cc @@ -477,7 +477,6 @@ int FileStore::umount() dout(5) << "umount " << basedir << dendl; sync(); - journal_stop(); lock.Lock(); stop = true; @@ -485,6 +484,8 @@ int FileStore::umount() lock.Unlock(); sync_thread.join(); + journal_stop(); + ::close(fsid_fd); ::close(op_fd); -- 2.39.5