summaryrefslogtreecommitdiffstats
path: root/virt
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2014-01-10 08:57:19 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-01-10 13:44:25 -0800
commitea1c472dfeada211a0100daa7976e8e8e779b858 (patch)
treeba19d47bf769857075edccba0f6006004ec6bb91 /virt
parentd92d2e6bd72b653f9811e0c9c46307c743b3fc58 (diff)
downloadop-kernel-dev-ea1c472dfeada211a0100daa7976e8e8e779b858.zip
op-kernel-dev-ea1c472dfeada211a0100daa7976e8e8e779b858.tar.gz
kernfs: replace kernfs_node->u.completion with kernfs_root->deactivate_waitq
kernfs_node->u.completion is used to notify deactivation completion from kernfs_put_active() to kernfs_deactivate(). We now allow multiple racing removals of the same node and the current removal scheme is no longer correct - kernfs_remove() invocation may return before the node is properly deactivated if it races against another removal. The removal path will be restructured to address the issue. To help such restructure which requires supporting multiple waiters, this patch replaces kernfs_node->u.completion with kernfs_root->deactivate_waitq. This makes deactivation event notifications share a per-root waitqueue_head; however, the wait path is quite cold and this will also allow shaving one pointer off kernfs_node. Signed-off-by: Tejun Heo <tj@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'virt')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud