]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
os/bluestore/bluefs: assert refs of file don't underflow
authorxie xingguo <xie.xingguo@zte.com.cn>
Thu, 25 Aug 2016 06:43:41 +0000 (14:43 +0800)
committerxie xingguo <xie.xingguo@zte.com.cn>
Fri, 26 Aug 2016 00:49:15 +0000 (08:49 +0800)
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
src/os/bluestore/BlueFS.cc

index 49b1485344b3ba153245446e469491dc3cf0dd51..f2e358a023393814e04202b8e6115f947db46ff7 100644 (file)
@@ -670,6 +670,7 @@ int BlueFS::_replay(bool noop)
            assert(q != dir_map.end());
            map<string,FileRef>::iterator r = q->second->file_map.find(filename);
            assert(r != q->second->file_map.end());
+            assert(r->second->refs > 0); 
            --r->second->refs;
            q->second->file_map.erase(r);
          }
@@ -788,6 +789,7 @@ void BlueFS::_drop_link(FileRef file)
 {
   dout(20) << __func__ << " had refs " << file->refs
           << " on " << file->fnode << dendl;
+  assert(file->refs > 0);
   --file->refs;
   if (file->refs == 0) {
     dout(20) << __func__ << " destroying " << file->fnode << dendl;