improve FS process bookkeeping; fixes bug where vfs tries to e.g. send
stime messages to NONE of an unmounted filesystem.
This commit is contained in:
parent
0e44ca2b61
commit
af78f809ee
@ -319,8 +319,10 @@ PRIVATE void init_root()
|
|||||||
last_login_fs_e = NONE;
|
last_login_fs_e = NONE;
|
||||||
|
|
||||||
/* Initialize vmnt table */
|
/* Initialize vmnt table */
|
||||||
for (vmp = &vmnt[0]; vmp < &vmnt[NR_MNTS]; ++vmp)
|
for (vmp = &vmnt[0]; vmp < &vmnt[NR_MNTS]; ++vmp) {
|
||||||
vmp->m_dev = NO_DEV;
|
vmp->m_dev = NO_DEV;
|
||||||
|
vmp->m_fs_e = NONE;
|
||||||
|
}
|
||||||
|
|
||||||
vmp = &vmnt[0];
|
vmp = &vmnt[0];
|
||||||
|
|
||||||
@ -411,7 +413,7 @@ PRIVATE void service_pm()
|
|||||||
|
|
||||||
/* Send new time for all FS processes */
|
/* Send new time for all FS processes */
|
||||||
for (vmp = &vmnt[0]; vmp < &vmnt[NR_MNTS]; ++vmp) {
|
for (vmp = &vmnt[0]; vmp < &vmnt[NR_MNTS]; ++vmp) {
|
||||||
if (vmp->m_fs_e)
|
if (vmp->m_fs_e != NONE)
|
||||||
req_stime(vmp->m_fs_e, boottime);
|
req_stime(vmp->m_fs_e, boottime);
|
||||||
}
|
}
|
||||||
/* No need to report status to PM */
|
/* No need to report status to PM */
|
||||||
|
@ -72,7 +72,7 @@ PUBLIC int do_stime()
|
|||||||
|
|
||||||
/* Send new time for all FS processes */
|
/* Send new time for all FS processes */
|
||||||
for (vmp = &vmnt[0]; vmp < &vmnt[NR_MNTS]; ++vmp) {
|
for (vmp = &vmnt[0]; vmp < &vmnt[NR_MNTS]; ++vmp) {
|
||||||
if (vmp->m_fs_e) req_stime(vmp->m_fs_e, boottime);
|
if (vmp->m_fs_e != NONE) req_stime(vmp->m_fs_e, boottime);
|
||||||
}
|
}
|
||||||
|
|
||||||
return OK;
|
return OK;
|
||||||
|
@ -3,6 +3,8 @@
|
|||||||
* Jul 2006 (Balazs Gerofi)
|
* Jul 2006 (Balazs Gerofi)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <minix/com.h>
|
||||||
|
|
||||||
#include "fs.h"
|
#include "fs.h"
|
||||||
#include "vmnt.h"
|
#include "vmnt.h"
|
||||||
|
|
||||||
@ -27,6 +29,8 @@ PUBLIC struct vmnt *get_free_vmnt(short *index)
|
|||||||
PUBLIC struct vmnt *find_vmnt(int fs_e)
|
PUBLIC struct vmnt *find_vmnt(int fs_e)
|
||||||
{
|
{
|
||||||
struct vmnt *vp;
|
struct vmnt *vp;
|
||||||
|
if(fs_e == NONE)
|
||||||
|
panic(__FILE__, "find_vmnt: find for NONE", NO_NUM);
|
||||||
for (vp = &vmnt[0]; vp < &vmnt[NR_MNTS]; ++vp) {
|
for (vp = &vmnt[0]; vp < &vmnt[NR_MNTS]; ++vp) {
|
||||||
if (vp->m_fs_e == fs_e) return vp;
|
if (vp->m_fs_e == fs_e) return vp;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user