diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-01-13 23:27:16 +0100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-01-13 23:27:16 +0100 |
commit | 55f6e30d0a6a8975cc0831e8a4a3715b815b6a2f (patch) | |
tree | 0316cdf73f1d42a386563dca5e9ff73f296d6ec4 /fs/kernfs/file.c | |
parent | Revert "kernfs: remove kernfs_addrm_cxt" (diff) | |
download | linux-55f6e30d0a6a8975cc0831e8a4a3715b815b6a2f.tar.xz linux-55f6e30d0a6a8975cc0831e8a4a3715b815b6a2f.zip |
Revert "kernfs: invoke kernfs_unmap_bin_file() directly from __kernfs_remove()"
This reverts commit f601f9a2bf7dc1f7ee18feece4c4e2fc6845d6c4.
Tejun writes:
I'm sorry but can you please revert the whole series?
get_active() waiting while a node is deactivated has potential
to lead to deadlock and that deactivate/reactivate interface is
something fundamentally flawed and that cgroup will have to work
with the remove_self() like everybody else. IOW, I think the
first posting was correct.
Cc: Tejun Heo <tj@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'fs/kernfs/file.c')
-rw-r--r-- | fs/kernfs/file.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/fs/kernfs/file.c b/fs/kernfs/file.c index 404ffd2f27bc..231a171f48b6 100644 --- a/fs/kernfs/file.c +++ b/fs/kernfs/file.c @@ -700,11 +700,14 @@ static int kernfs_fop_release(struct inode *inode, struct file *filp) return 0; } -void kernfs_unmap_file(struct kernfs_node *kn) +void kernfs_unmap_bin_file(struct kernfs_node *kn) { struct kernfs_open_node *on; struct kernfs_open_file *of; + if (!(kn->flags & KERNFS_HAS_MMAP)) + return; + spin_lock_irq(&kernfs_open_node_lock); on = kn->attr.open; if (on) |