};
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;
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;
}
return r;
}
- controllers[sn_tag] = make_pair(*c, 1);
+ controllers[sn_tag] = make_pair(*c, *name);
pci_iterator_destroy(iter);
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);
- }
}
// ----------------