]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore: do not signal removed dirty file to bluefs log 48171/head
authorIgor Fedotov <igor.fedotov@croit.io>
Tue, 12 Jul 2022 17:16:18 +0000 (20:16 +0300)
committerIgor Fedotov <igor.fedotov@croit.io>
Fri, 4 Aug 2023 15:57:59 +0000 (18:57 +0300)
Fixes: https://tracker.ceph.com/issues/56533
Signed-off-by: Igor Fedotov <igor.fedotov@croit.io>
(cherry picked from commit 576cf8c076b37be978cea06fc5b7348aeffe6829)

src/os/bluestore/BlueFS.cc

index cf315e8033c9cf3f364bb6154d9a6fdb86bf1b16..6327fd61eb0e8a86530ca249de43c8fb5f3aae09 100644 (file)
@@ -3315,6 +3315,11 @@ int BlueFS::_signal_dirty_to_log_D(FileWriter *h)
 {
   ceph_assert(ceph_mutex_is_locked(h->lock));
   std::lock_guard dl(dirty.lock);
+  if (h->file->deleted) {
+    dout(10) << __func__ << "  deleted, no-op" << dendl;
+    return 0;
+  }
+
   h->file->fnode.mtime = ceph_clock_now();
   ceph_assert(h->file->fnode.ino >= 1);
   if (h->file->dirty_seq <= dirty.seq_stable) {