rid of NINODE
[unix-history] / usr / src / sys / kern / vfs_syscalls.c
index e753169..aec349e 100644 (file)
@@ -1,4 +1,4 @@
-/*     vfs_syscalls.c  4.4     %G%     */
+/*     vfs_syscalls.c  4.7     %G%     */
 
 #include "../h/param.h"
 #include "../h/systm.h"
 
 #include "../h/param.h"
 #include "../h/systm.h"
@@ -226,7 +226,8 @@ sumount()
        return;
 
 found:
        return;
 
 found:
-       for(ip = &inode[0]; ip < &inode[NINODE]; ip++)
+       stillopen = 0;
+       for(ip = inode; ip < inodeNINODE; ip++)
                if (ip->i_number != 0 && dev == ip->i_dev) {
                        u.u_error = EBUSY;
                        return;
                if (ip->i_number != 0 && dev == ip->i_dev) {
                        u.u_error = EBUSY;
                        return;
@@ -243,8 +244,8 @@ found:
        flag = !bp->b_un.b_filsys->s_ronly;
        mp->m_bufp = NULL;
        brelse(bp);
        flag = !bp->b_un.b_filsys->s_ronly;
        mp->m_bufp = NULL;
        brelse(bp);
+       mpurge(mp - &mount[0]);
        if (!stillopen) {
        if (!stillopen) {
-               mpurge(mp - &mount[0]);
                (*bdevsw[major(dev)].d_close)(dev, flag);
                binval(dev);
        }
                (*bdevsw[major(dev)].d_close)(dev, flag);
                binval(dev);
        }