From: Baokun Li Date: Thu, 21 May 2026 09:50:15 +0000 (+0800) Subject: writeback: drop now-unnecessary rcu_barrier() in cgroup_writeback_umount() X-Git-Url: http://git.ipfire.org/gitweb/index.cgi?a=commitdiff_plain;h=e90a6d668e26e00a72df2d09c173b563468f09c9;p=thirdparty%2Fkernel%2Flinux.git writeback: drop now-unnecessary rcu_barrier() in cgroup_writeback_umount() Commit e1b849cfa6b6 ("writeback: Avoid contention on wb->list_lock when switching inodes") replaced the queue_rcu_work() based scheduling of inode wb switches with a plain queue_work(). Since then no switcher goes through call_rcu(), so rcu_barrier() in cgroup_writeback_umount() has no callbacks of its own to wait for. It still drains unrelated call_rcu() callbacks from other subsystems on busy systems, which incidentally slows umount down; drop it. Fixes: e1b849cfa6b6 ("writeback: Avoid contention on wb->list_lock when switching inodes") Reviewed-by: Jan Kara Signed-off-by: Baokun Li Link: https://patch.msgid.link/20260521095016.2791354-3-libaokun@linux.alibaba.com Acked-by: Tejun Heo Signed-off-by: Christian Brauner (Amutable) --- diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c index 6766de9f9d75b..325a30cc35bfb 100644 --- a/fs/fs-writeback.c +++ b/fs/fs-writeback.c @@ -1248,11 +1248,6 @@ void cgroup_writeback_umount(struct super_block *sb) * will then drain it. */ synchronize_rcu(); - /* - * Use rcu_barrier() to wait for all pending callbacks to - * ensure that all in-flight wb switches are in the workqueue. - */ - rcu_barrier(); flush_workqueue(isw_wq); } }