summaryrefslogtreecommitdiffstats
path: root/fs/kernfs/file.c
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-01-13 23:27:16 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-01-13 23:27:16 +0100
commit55f6e30d0a6a8975cc0831e8a4a3715b815b6a2f (patch)
tree0316cdf73f1d42a386563dca5e9ff73f296d6ec4 /fs/kernfs/file.c
parentRevert "kernfs: remove kernfs_addrm_cxt" (diff)
downloadlinux-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.c5
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)