Re: [PATCH] kernfs: fix locking around kernfs_ops->release() callback
From: Tejun Heo
Date: Tue Feb 21 2017 - 15:51:02 EST
On Sun, Feb 12, 2017 at 05:33:02AM +0900, Tejun Heo wrote:
> The release callback may be called from two places - file release
> operation and kernfs open file draining. kernfs_open_file->mutex is
> used to synchronize the two callsites. This unfortunately leads to
> possible circular locking because of->mutex is used to protect the
> usual kernfs operations which may use locking constructs which are
> held while removing and thus draining kernfs files.
> @of->mutex is for synchronizing concurrent kernfs access operations
> and all we need here is synchronization between the releaes and drain
> paths. As the drain path has to grab kernfs_open_file_mutex anyway,
> let's use the mutex to synchronize the release operation instead.
> Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
> Reported-by: Tony Lindgren <tony@xxxxxxxxxxx>
> Fixes: 0e67db2f9fe9 ("kernfs: add kernfs_ops->open/release() callbacks")
Applied to cgroup/for-4.11.