projects
/
unix-history
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
tags
|
clone url
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
add system wide cacheing of path names in namei() (from kre)
[unix-history]
/
usr
/
src
/
sys
/
ufs
/
lfs
/
lfs_vfsops.c
diff --git
a/usr/src/sys/ufs/lfs/lfs_vfsops.c
b/usr/src/sys/ufs/lfs/lfs_vfsops.c
index
b6d168b
..
4638161
100644
(file)
--- a/
usr/src/sys/ufs/lfs/lfs_vfsops.c
+++ b/
usr/src/sys/ufs/lfs/lfs_vfsops.c
@@
-1,4
+1,4
@@
-/* lfs_vfsops.c 6.
1 83/07/29
*/
+/* lfs_vfsops.c 6.
2 84/01/03
*/
#include "../h/param.h"
#include "../h/systm.h"
#include "../h/param.h"
#include "../h/systm.h"
@@
-30,7
+30,7
@@
smount()
if (u.u_error)
return;
u.u_dirp = (caddr_t)uap->freg;
if (u.u_error)
return;
u.u_dirp = (caddr_t)uap->freg;
- ip = namei(uchar, LOOKUP, 1);
+ ip = namei(uchar, LOOKUP
| NOCACHE
, 1);
if (ip == NULL)
return;
if (ip->i_count!=1 || (ip->i_mode&IFMT) != IFDIR) {
if (ip == NULL)
return;
if (ip->i_count!=1 || (ip->i_mode&IFMT) != IFDIR) {
@@
-165,6
+165,7
@@
unmount1(forcibly)
return (EINVAL);
found:
xumount(dev); /* remove unused sticky files from text table */
return (EINVAL);
found:
xumount(dev); /* remove unused sticky files from text table */
+ nchinval(dev); /* flush the name cache */
update();
#ifdef QUOTA
if ((stillopen = iflush(dev, mp->m_qinod)) < 0 && !forcibly)
update();
#ifdef QUOTA
if ((stillopen = iflush(dev, mp->m_qinod)) < 0 && !forcibly)