. new kernel call sysctl for generic unprivileged system operations;
now used for printing diagnostic messages through the kernel message buffer. this lets processes print diagnostics without sending messages to tty and log directly, simplifying the message protocol a lot and reducing difficulties with deadlocks and other situations in which diagnostics are blackholed (e.g. grants don't work). this makes DIAGNOSTICS(_S), ASYN_DIAGNOSTICS and DIAG_REPL obsolete, although tty and log still accept the codes for 'old' binaries. This also simplifies diagnostics in several servers and drivers - only tty needs its own kputc() now. . simplifications in vfs, and some effort to get the vnode references right (consistent) even during shutdown. m_mounted_on is now NULL for root filesystems (!) (the original and new root), a less awkward special case than 'm_mounted_on == m_root_node'. root now has exactly one reference, to root, if no files are open, just like all other filesystems. m_driver_e is unused.
This commit is contained in:
@@ -48,16 +48,20 @@ PUBLIC int fs_putnode()
|
||||
fs_m_in.REQ_INODE_INDEX < NR_INODES &&
|
||||
inode[fs_m_in.REQ_INODE_INDEX].i_num == fs_m_in.REQ_INODE_NR) {
|
||||
rip = &inode[fs_m_in.REQ_INODE_INDEX];
|
||||
if(!rip) {
|
||||
panic(__FILE__, "null rip", NO_NUM);
|
||||
}
|
||||
}
|
||||
/* Otherwise find it */
|
||||
else {
|
||||
rip = find_inode(fs_dev, fs_m_in.REQ_INODE_NR);
|
||||
if(!(rip = find_inode(fs_dev, fs_m_in.REQ_INODE_NR))) {
|
||||
printf("FSput_inode: inode #%d dev: %d not found, req_nr: %d\n",
|
||||
fs_m_in.REQ_INODE_NR, fs_dev, req_nr);
|
||||
}
|
||||
}
|
||||
|
||||
if (!rip)
|
||||
{
|
||||
printf("FSput_inode: inode #%d dev: %d couldn't be put, req_nr: %d\n",
|
||||
fs_m_in.REQ_INODE_NR, fs_dev, req_nr);
|
||||
panic(__FILE__, "fs_putnode failed", NO_NUM);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user