]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
NVMEDevice: no need to detach nvme device
authorHaomai Wang <haomai@xsky.com>
Mon, 18 Jan 2016 03:37:32 +0000 (11:37 +0800)
committerHaomai Wang <haomai@xsky.com>
Mon, 1 Feb 2016 14:01:27 +0000 (22:01 +0800)
Signed-off-by: Haomai Wang <haomai@xsky.com>
src/os/bluestore/NVMEDevice.cc

index 294d74f3acdda1b511bde104191ad72ae51c822f..e7012f284f6766b470c04e98754d781cad98f712 100644 (file)
@@ -117,7 +117,7 @@ static char *ealargs[] = {
 };
 
 class SharedDriverData {
-  std::map<string, std::pair<nvme_controller*, int> > controllers;
+  std::map<string, std::pair<nvme_controller*, string> > controllers;
   bool init = false;
   Mutex lock;
 
@@ -145,7 +145,7 @@ int SharedDriverData::_scan_nvme_device(const string &sn_tag, nvme_controller **
 
   auto ctr_it = controllers.find(sn_tag);
   if (ctr_it != controllers.end()) {
-    ctr_it->second.second++;
+    *name = ctr_it->second.second;
     *c = ctr_it->second.first;
     return 0;
   }
@@ -231,7 +231,7 @@ int SharedDriverData::_scan_nvme_device(const string &sn_tag, nvme_controller **
     return r;
   }
 
-  controllers[sn_tag] = make_pair(*c, 1);
+  controllers[sn_tag] = make_pair(*c, *name);
 
   pci_iterator_destroy(iter);
 
@@ -294,12 +294,6 @@ void SharedDriverData::release(nvme_controller *c)
     derr << __func__ << " not found registered nvme controller " << c << dendl;
     assert(0);
   }
-
-  if (--it->second.second == 0) {
-    dout(1) << __func__ << " detach device " << c << dendl;
-    nvme_detach(c);
-    controllers.erase(it);
-  }
 }
 
 // ----------------