From c09f7992714559eaa874f13ea4a1d648f199cd08 Mon Sep 17 00:00:00 2001 From: Mateusz Guzik Date: Mon, 25 Jan 2021 21:17:48 +0100 Subject: [PATCH] tmpfs: drop acq fence now that vn_load_v_data_smr has consume semantics --- sys/fs/tmpfs/tmpfs_subr.c | 3 --- sys/fs/tmpfs/tmpfs_vnops.c | 1 - 2 files changed, 4 deletions(-) diff --git a/sys/fs/tmpfs/tmpfs_subr.c b/sys/fs/tmpfs/tmpfs_subr.c index 3b3581fc81f..84473a439c4 100644 --- a/sys/fs/tmpfs/tmpfs_subr.c +++ b/sys/fs/tmpfs/tmpfs_subr.c @@ -356,9 +356,6 @@ tmpfs_alloc_node(struct mount *mp, struct tmpfs_mount *tmp, enum vtype type, * pointer to also get the above content in a stable manner. * Worst case tn_link_smr flag may be set to true despite being stale, * while the target buffer is already cleared out. - * - * TODO: Since there is no load consume primitive provided - * right now, the load is performed with an acquire fence. */ atomic_store_ptr(&nnode->tn_link_target, symlink); atomic_store_char((char *)&nnode->tn_link_smr, symlink_smr); diff --git a/sys/fs/tmpfs/tmpfs_vnops.c b/sys/fs/tmpfs/tmpfs_vnops.c index c716b393efd..7614287c642 100644 --- a/sys/fs/tmpfs/tmpfs_vnops.c +++ b/sys/fs/tmpfs/tmpfs_vnops.c @@ -1466,7 +1466,6 @@ tmpfs_fplookup_symlink(struct vop_fplookup_symlink_args *v) vp = v->a_vp; node = VP_TO_TMPFS_NODE_SMR(vp); - atomic_thread_fence_acq(); if (__predict_false(node == NULL)) return (EAGAIN); if (!atomic_load_char(&node->tn_link_smr))