diff options
| author | Mateusz Guzik <mjguzik@gmail.com> | 2025-10-11 00:17:36 +0200 |
|---|---|---|
| committer | Christian Brauner <brauner@kernel.org> | 2025-11-25 10:32:39 +0100 |
| commit | a27628f4363435beac84b55c749c41a005054d30 (patch) | |
| tree | 23c7382d96e094039462df3aac506bac125fa588 /mm/filemap.c | |
| parent | 11f2af2a80b5f9dcfc829c64e0ad176e011ddf60 (diff) | |
fs: rework I_NEW handling to operate without fences
In the inode hash code grab the state while ->i_lock is held. If found
to be set, synchronize the sleep once more with the lock held.
In the real world the flag is not set most of the time.
Apart from being simpler to reason about, it comes with a minor speed up
as now clearing the flag does not require the smp_mb() fence.
While here rename wait_on_inode() to wait_on_new_inode() to line it up
with __wait_on_freeing_inode().
Christian Brauner <brauner@kernel.org> says:
As per the discussion in [1] I folded in the diff sent in [2].
Link: https://lore.kernel.org/69238e4d.a70a0220.d98e3.006e.GAE@google.com [1]
Link: https://lore.kernel.org/c2kpawomkbvtahjm7y5mposbhckb7wxthi3iqy5yr22ggpucrm@ufvxwy233qxo [2]
Signed-off-by: Mateusz Guzik <mjguzik@gmail.com>
Link: https://patch.msgid.link/20251010221737.1403539-1-mjguzik@gmail.com
Signed-off-by: Christian Brauner <brauner@kernel.org>
Diffstat (limited to 'mm/filemap.c')
0 files changed, 0 insertions, 0 deletions