aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMateusz Guzik <mjg@FreeBSD.org>2021-01-19 09:08:24 +0000
committerMateusz Guzik <mjg@FreeBSD.org>2021-01-19 09:08:24 +0000
commit6d386b4c8a970d3b080d77e2561d6073307362e4 (patch)
tree5c2e767e679a1f65eb9a1e635bae9648f83bf026
parenteed1cc6cdfa743e52ac3ea0b788e95b069a5f2f3 (diff)
downloadsrc-6d386b4c8a970d3b080d77e2561d6073307362e4.tar.gz
src-6d386b4c8a970d3b080d77e2561d6073307362e4.zip
cache: save a branch in cache_fplookup_next
Previously the code would branch on top find out whether it should branch on SDT probe and bumping the numposhits counter, depending on cache_fplookup_cross_mount. Arguably it should be done regardless of what said function returns.
-rw-r--r--sys/kern/vfs_cache.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/sys/kern/vfs_cache.c b/sys/kern/vfs_cache.c
index 7eb9237bf257..420a54baf3f2 100644
--- a/sys/kern/vfs_cache.c
+++ b/sys/kern/vfs_cache.c
@@ -4748,16 +4748,14 @@ cache_fplookup_next(struct cache_fpl *fpl)
return (cache_fpl_partial(fpl));
}
+ counter_u64_add(numposhits, 1);
+ SDT_PROBE3(vfs, namecache, lookup, hit, dvp, ncp->nc_name, tvp);
+
+ error = 0;
if (cache_fplookup_is_mp(fpl)) {
error = cache_fplookup_cross_mount(fpl);
- if (__predict_false(error != 0)) {
- return (error);
- }
}
-
- counter_u64_add(numposhits, 1);
- SDT_PROBE3(vfs, namecache, lookup, hit, dvp, ncp->nc_name, tvp);
- return (0);
+ return (error);
}
static bool