git: 742285d28301 - stable/13 - cache: tidy up handling of foo/bar lookups where foo is not a directory
Mateusz Guzik
mjg at FreeBSD.org
Mon Feb 1 12:46:39 UTC 2021
The branch stable/13 has been updated by mjg:
URL: https://cgit.FreeBSD.org/src/commit/?id=742285d283012c0022e9acdbe9ed1c7dd5cbb5e6
commit 742285d283012c0022e9acdbe9ed1c7dd5cbb5e6
Author: Mateusz Guzik <mjg at FreeBSD.org>
AuthorDate: 2021-01-26 16:19:12 +0000
Commit: Mateusz Guzik <mjg at FreeBSD.org>
CommitDate: 2021-02-01 12:39:17 +0000
cache: tidy up handling of foo/bar lookups where foo is not a directory
The code was performing an avoidable check for doomed state to account
for foo being a VDIR but turning VBAD. Now that dooming puts a vnode
in a permanent "modify" state this is no longer necessary as the final
status check will catch it.
(cherry picked from commit a098a831a162fcd55b0097c95e6840621d8c720a)
---
sys/kern/vfs_cache.c | 15 +++------------
1 file changed, 3 insertions(+), 12 deletions(-)
diff --git a/sys/kern/vfs_cache.c b/sys/kern/vfs_cache.c
index 4e2cfa9edf53..b759affcc0ac 100644
--- a/sys/kern/vfs_cache.c
+++ b/sys/kern/vfs_cache.c
@@ -5328,20 +5328,11 @@ cache_fplookup_failed_vexec(struct cache_fpl *fpl, int error)
}
/*
- * Hack: they may be looking up foo/bar, where foo is a
- * regular file. In such a case we need to turn ENOTDIR,
- * but we may happen to get here with a different error.
+ * Hack: they may be looking up foo/bar, where foo is not a directory.
+ * In such a case we need to return ENOTDIR, but we may happen to get
+ * here with a different error.
*/
if (dvp->v_type != VDIR) {
- /*
- * The check here is predominantly to catch
- * EOPNOTSUPP from dead_vnodeops. If the vnode
- * gets doomed past this point it is going to
- * fail seqc verification.
- */
- if (VN_IS_DOOMED(dvp)) {
- return (cache_fpl_aborted(fpl));
- }
error = ENOTDIR;
}
More information about the dev-commits-src-all
mailing list