The kern_renameat() looks up the fvp using the DELETE flag, which causes
the removal of the name cache entry for fvp. Reported by: Anton Yuzhaninov <citrin citrin ru> In collaboration with: kib MFC after: 1 week
This commit is contained in:
parent
f151da3d71
commit
f11a5665c1
@ -1519,6 +1519,13 @@ ufs_rename(ap)
|
||||
cache_purge(fdvp);
|
||||
}
|
||||
error = ufs_dirremove(fdvp, fip, fcnp->cn_flags, 0);
|
||||
/*
|
||||
* As the relookup of the fvp is done in two steps:
|
||||
* ufs_lookup_ino() and then VFS_VGET(), another thread might do a
|
||||
* normal lookup of the from name just before the VFS_VGET() call,
|
||||
* causing the cache entry to be re-instantiated.
|
||||
*/
|
||||
cache_purge(fvp);
|
||||
|
||||
unlockout:
|
||||
vput(fdvp);
|
||||
|
Loading…
Reference in New Issue
Block a user