]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore/BlueFS: fix replay of unlink
authorSage Weil <sage@redhat.com>
Thu, 10 Dec 2015 22:18:57 +0000 (17:18 -0500)
committerSage Weil <sage@redhat.com>
Fri, 1 Jan 2016 18:06:57 +0000 (13:06 -0500)
Signed-off-by: Sage Weil <sage@redhat.com>
src/os/bluestore/BlueFS.cc

index ec7179e70d4f44b4abf40fbc0a6765af7e51c98d..d6e0736e6d5fa2dd3bd5f88bf0e4218b25a5f838 100644 (file)
@@ -492,6 +492,9 @@ int BlueFS::_replay()
          assert(q != dir_map.end());
          map<string,FileRef>::iterator r = q->second->file_map.find(filename);
          assert(r != q->second->file_map.end());
+         if (--r->second->refs == 0) {
+           file_map.erase(r->second->fnode.ino);
+         }
          q->second->file_map.erase(r);
        }
        break;
@@ -1306,6 +1309,8 @@ int BlueFS::stat(const string& dirname, const string& filename,
     return -ENOENT;
   }
   File *file = q->second.get();
+  dout(10) << __func__ << " " << dirname << "/" << filename
+          << " " << file->fnode << dendl;
   if (size)
     *size = file->fnode.size;
   if (mtime)