https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=291941
Bug ID: 291941
Summary: ctld regression: /dev/cam/ctl#.# dev nodes no longer
created
Product: Base System
Version: 15.0-RELEASE
Hardware: Any
OS: Any
Status: New
Severity: Affects Only Me
Priority: ---
Component: bin
Assignee: [email protected]
Reporter: [email protected]
I recently upgraded from FreeBSD 14 to 15 and noticed that my /dev/cam/ctl#.#
nodes disappeared. Looking at the source code to ctld, it looks like it was
refactored and is now calling an "is_dummy()" method and skipping over creating
the ctl nodes for ioctl ports.
ctld.hh:
struct port {
...
virtual bool is_dummy() const { return true; }
...
}
struct ioctl_port doesn't overrides is_dummy, and is thus returning true,
resulting in this code in ctld.cc skipping the kernel_add call:
/*
* Now add new ports or modify existing ones.
*/
for (auto it = conf_ports.begin(); it != conf_ports.end(); ) {
const std::string &name = it->first;
port *newport = it->second.get();
if (newport->is_dummy()) {
it++;
continue;
}
const auto oldit = oldconf->conf_ports.find(name);
if (oldit == oldconf->conf_ports.end() ||
oldit->second->is_dummy()) {
log_debugx("adding port \"%s\"", name.c_str());
if (!newport->kernel_add()) {
--
You are receiving this mail because:
You are the assignee for the bug.