diff options
author | Mateusz Guzik <mjg@FreeBSD.org> | 2021-01-19 09:08:24 +0000 |
---|---|---|
committer | Mateusz Guzik <mjg@FreeBSD.org> | 2021-01-19 09:08:24 +0000 |
commit | 6d386b4c8a970d3b080d77e2561d6073307362e4 (patch) | |
tree | 5c2e767e679a1f65eb9a1e635bae9648f83bf026 | |
parent | eed1cc6cdfa743e52ac3ea0b788e95b069a5f2f3 (diff) | |
download | src-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.c | 12 |
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 |