From 973ba682f5cbbc8e89683fb439bd0605afc2b43a Mon Sep 17 00:00:00 2001 From: Mateusz Guzik Date: Thu, 29 Oct 2020 17:54:20 +0100 Subject: [PATCH] Linux: g/c leftover fence in zfs_znode_alloc The port removed provisions for zfs_znode_move but the cleanup missed this bit. To quote the original: [snip] list_insert_tail(&zfsvfs->z_all_znodes, zp); membar_producer(); /* * Everything else must be valid before assigning z_zfsvfs makes the * znode eligible for zfs_znode_move(). */ zp->z_zfsvfs = zfsvfs; [/snip] In the current code it is immediately followed by unlock which issues the same fence, thus plays no role in correctness. Reviewed-by: Matt Macy Reviewed-by: Brian Behlendorf Signed-off-by: Mateusz Guzik Closes #11115 --- module/os/linux/zfs/zfs_znode.c | 1 - 1 file changed, 1 deletion(-) diff --git a/module/os/linux/zfs/zfs_znode.c b/module/os/linux/zfs/zfs_znode.c index 69fa3baa7..677c101bc 100644 --- a/module/os/linux/zfs/zfs_znode.c +++ b/module/os/linux/zfs/zfs_znode.c @@ -620,7 +620,6 @@ zfs_znode_alloc(zfsvfs_t *zfsvfs, dmu_buf_t *db, int blksz, mutex_enter(&zfsvfs->z_znodes_lock); list_insert_tail(&zfsvfs->z_all_znodes, zp); zfsvfs->z_nr_znodes++; - membar_producer(); mutex_exit(&zfsvfs->z_znodes_lock); unlock_new_inode(ip);