mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-07-23 02:47:31 -04:00
writeback: drop now-unnecessary rcu_barrier() in cgroup_writeback_umount()
Commite1b849cfa6("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:e1b849cfa6("writeback: Avoid contention on wb->list_lock when switching inodes") Reviewed-by: Jan Kara <jack@suse.cz> Signed-off-by: Baokun Li <libaokun@linux.alibaba.com> Link: https://patch.msgid.link/20260521095016.2791354-3-libaokun@linux.alibaba.com Acked-by: Tejun Heo <tj@kernel.org> Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
This commit is contained in:
committed by
Christian Brauner
parent
cba38ec4cb
commit
e90a6d668e
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user