Page MenuHomeFreeBSD

D27457.diff
No OneTemporary

D27457.diff

Index: head/sys/ufs/ufs/ufs_lookup.c
===================================================================
--- head/sys/ufs/ufs/ufs_lookup.c
+++ head/sys/ufs/ufs/ufs_lookup.c
@@ -745,6 +745,11 @@
*vpp = vdp;
} else {
error = VFS_VGET(pdp->v_mount, ino, cnp->cn_lkflags, &tdp);
+ if (error == 0 && VTOI(tdp)->i_mode == 0) {
+ vgone(tdp);
+ vput(tdp);
+ error = ENOENT;
+ }
if (error)
return (error);
*vpp = tdp;
Index: head/sys/ufs/ufs/ufs_vfsops.c
===================================================================
--- head/sys/ufs/ufs/ufs_vfsops.c
+++ head/sys/ufs/ufs/ufs_vfsops.c
@@ -240,6 +240,8 @@
ip = VTOI(nvp);
if (ip->i_mode == 0 || ip->i_gen != ufhp->ufid_gen ||
ip->i_effnlink <= 0) {
+ if (ip->i_mode == 0)
+ vgone(nvp);
vput(nvp);
*vpp = NULLVP;
return (ESTALE);

File Metadata

Mime Type
text/plain
Expires
Fri, Apr 10, 9:20 PM (16 h, 49 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31246502
Default Alt Text
D27457.diff (823 B)

Event Timeline