Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F146439189
D40906.id124276.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
980 B
Referenced Files
None
Subscribers
None
D40906.id124276.diff
View Options
diff --git a/sys/kern/vfs_cache.c b/sys/kern/vfs_cache.c
--- a/sys/kern/vfs_cache.c
+++ b/sys/kern/vfs_cache.c
@@ -3665,23 +3665,7 @@
addend = 0;
- /*
- * Check for VBAD to work around the vp_crossmp bug in lookup().
- *
- * For example consider tmpfs on /tmp and realpath /tmp. ni_vp will be
- * set to mount point's root vnode while ni_dvp will be vp_crossmp.
- * If the type is VDIR (like in this very case) we can skip looking
- * at ni_dvp in the first place. However, since vnodes get passed here
- * unlocked the target may transition to doomed state (type == VBAD)
- * before we get to evaluate the condition. If this happens, we will
- * populate part of the buffer and descend to vn_fullpath_dir with
- * vp == vp_crossmp. Prevent the problem by checking for VBAD.
- */
type = atomic_load_8(&vp->v_type);
- if (type == VBAD) {
- error = ENOENT;
- goto out_bad;
- }
if (type != VDIR) {
addend = hrdl_name_length + 2;
if (*buflen < addend) {
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Tue, Mar 3, 5:05 PM (11 h, 26 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29206771
Default Alt Text
D40906.id124276.diff (980 B)
Attached To
Mode
D40906: vn_fullpath_hardlink(): Remove the 'vp_crossmp' workaround
Attached
Detach File
Event Timeline
Log In to Comment