diff options
| author | Mateusz Guzik <mjguzik@gmail.com> | 2025-11-20 01:38:02 +0100 |
|---|---|---|
| committer | Christian Brauner <brauner@kernel.org> | 2025-11-26 14:52:02 +0100 |
| commit | 9d2a6211a7b972563d20edebccaae42994c429fb (patch) | |
| tree | e414338abb41dcc3722f589091bb895a7de8d0da /fs/namespace.c | |
| parent | 1ed45a4ddc15cfb04a27303cfbd381d9e95a01da (diff) | |
fs: tidy up step_into() & friends before inlining
Symlink handling is already marked as unlikely and pushing out some of
it into pick_link() reduces register spillage on entry to step_into()
with gcc 14.2.
The compiler needed additional convincing that handle_mounts() is
unlikely to fail.
At the same time neither clang nor gcc could be convinced to tail-call
into pick_link().
While pick_link() takes an address of stack-based object as an argument
(which definitely prevents the optimization), splitting it into separate
<dentry, mount> tuple did not help. The issue persists even when
compiled without stack protector. As such nothing was done about this
for the time being to not grow the diff.
Signed-off-by: Mateusz Guzik <mjguzik@gmail.com>
Link: https://patch.msgid.link/20251120003803.2979978-1-mjguzik@gmail.com
Signed-off-by: Christian Brauner <brauner@kernel.org>
Diffstat (limited to 'fs/namespace.c')
0 files changed, 0 insertions, 0 deletions