diff options
author | Tavian Barnes <tavianator@tavianator.com> | 2024-02-05 13:54:01 -0500 |
---|---|---|
committer | Tavian Barnes <tavianator@tavianator.com> | 2024-02-05 13:56:12 -0500 |
commit | 10b6da04521cf3f65f3c47bece8e2e5e6e664d6d (patch) | |
tree | d9e8e27a73c8bf4ee3ebf78e5a3c09ce5fe184e9 /src | |
parent | dab66643f54d0f79c212db9e68d8545b98a2d653 (diff) | |
download | bfs-10b6da04521cf3f65f3c47bece8e2e5e6e664d6d.tar.xz |
mtab: Take the basename directly in bfs_might_be_mount()
This avoids some hot xbaseoff() calls.
Diffstat (limited to 'src')
-rw-r--r-- | src/bftw.c | 2 | ||||
-rw-r--r-- | src/mtab.c | 3 | ||||
-rw-r--r-- | src/mtab.h | 6 |
3 files changed, 5 insertions, 6 deletions
@@ -1390,7 +1390,7 @@ static bool bftw_need_stat(const struct bftw_state *state) { // need to stat() to get the correct type. We don't need to // check for directories because they can only be mounted over // by other directories. - if (bfs_might_be_mount(state->mtab, ftwbuf->path)) { + if (bfs_might_be_mount(state->mtab, ftwbuf->path + ftwbuf->nameoff)) { return true; } #endif @@ -271,8 +271,7 @@ const char *bfs_fstype(const struct bfs_mtab *mtab, const struct bfs_stat *statb } } -bool bfs_might_be_mount(const struct bfs_mtab *mtab, const char *path) { - const char *name = path + xbaseoff(path); +bool bfs_might_be_mount(const struct bfs_mtab *mtab, const char *name) { return trie_find_str(&mtab->names, name); } @@ -43,12 +43,12 @@ const char *bfs_fstype(const struct bfs_mtab *mtab, const struct bfs_stat *statb * * @param mtab * The current mount table. - * @param path - * The path to check. + * @param name + * The name of the file to check. * @return * Whether the named file could be a mount point. */ -bool bfs_might_be_mount(const struct bfs_mtab *mtab, const char *path); +bool bfs_might_be_mount(const struct bfs_mtab *mtab, const char *name); /** * Free a mount table. |