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
have direnter return errors so new inodes can be thrown away
[unix-history]
/
usr
/
src
/
sys
/
ufs
/
ffs
/
ffs_vnops.c
diff --git
a/usr/src/sys/ufs/ffs/ffs_vnops.c
b/usr/src/sys/ufs/ffs/ffs_vnops.c
index
329782e
..
3efc57a
100644
(file)
--- a/
usr/src/sys/ufs/ffs/ffs_vnops.c
+++ b/
usr/src/sys/ufs/ffs/ffs_vnops.c
@@
-1,4
+1,4
@@
-/* ffs_vnops.c 4.
49 83/01/22
*/
+/* ffs_vnops.c 4.
50 83/02/10
*/
#include "../h/param.h"
#include "../h/systm.h"
#include "../h/param.h"
#include "../h/systm.h"
@@
-265,7
+265,7
@@
link()
u.u_error = EXDEV;
goto out;
}
u.u_error = EXDEV;
goto out;
}
- direnter(ip);
+
u.u_error =
direnter(ip);
out:
if (u.u_error) {
ip->i_nlink--;
out:
if (u.u_error) {
ip->i_nlink--;
@@
-991,11
+991,9
@@
rename()
dp->i_flag |= ICHG;
iupdat(dp, &time, &time, 1);
}
dp->i_flag |= ICHG;
iupdat(dp, &time, &time, 1);
}
- direnter(ip);
- if (u.u_error) {
- error = u.u_error;
+ error = direnter(ip);
+ if (error)
goto out;
goto out;
- }
} else {
if (xp->i_dev != dp->i_dev || xp->i_dev != ip->i_dev) {
error = EXDEV;
} else {
if (xp->i_dev != dp->i_dev || xp->i_dev != ip->i_dev) {
error = EXDEV;
@@
-1181,11
+1179,11
@@
maknode(mode)
* Make sure inode goes to disk before directory entry.
*/
iupdat(ip, &time, &time, 1);
* Make sure inode goes to disk before directory entry.
*/
iupdat(ip, &time, &time, 1);
- direnter(ip);
+
u.u_error =
direnter(ip);
if (u.u_error) {
/*
if (u.u_error) {
/*
- *
w
rite error occurred trying to update directory
- * so must deallocate the inode
+ *
W
rite error occurred trying to update directory
+ * so must deallocate the inode
.
*/
ip->i_nlink = 0;
ip->i_flag |= ICHG;
*/
ip->i_nlink = 0;
ip->i_flag |= ICHG;