]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore/bluefs: check against locked field during unlink
authorxie xingguo <xie.xingguo@zte.com.cn>
Thu, 25 Aug 2016 06:25:21 +0000 (14:25 +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 30982d0b1f6fca824bd366547cba3ed157b2db11..49b1485344b3ba153245446e469491dc3cf0dd51 100644 (file)
@@ -2074,6 +2074,11 @@ int BlueFS::unlink(const string& dirname, const string& filename)
     return -ENOENT;
   }
   FileRef file = q->second;
+  if (file->locked) {
+    dout(20) << __func__ << " file " << dirname << "/" << filename
+             << " is locked" << dendl;
+    return -EBUSY;
+  }
   dir->file_map.erase(filename);
   log_t.op_dir_unlink(dirname, filename);
   _drop_link(file);