summaryrefslogtreecommitdiffstats
path: root/fs/kernfs/symlink.c
diff options
context:
space:
mode:
authorGreg Kroah-Hartman2014-01-13 23:36:03 +0100
committerGreg Kroah-Hartman2014-01-13 23:36:03 +0100
commit798c75a0d44cdbd6e3d82a6a676e6de38525b3bb (patch)
tree358f5deccf0f6b6afa833d0264f2e3aefcca02ce /fs/kernfs/symlink.c
parentRevert "kernfs: restructure removal path to fix possible premature return" (diff)
downloadkernel-qcow2-linux-798c75a0d44cdbd6e3d82a6a676e6de38525b3bb.tar.gz
kernel-qcow2-linux-798c75a0d44cdbd6e3d82a6a676e6de38525b3bb.tar.xz
kernel-qcow2-linux-798c75a0d44cdbd6e3d82a6a676e6de38525b3bb.zip
Revert "kernfs: remove KERNFS_REMOVED"
This reverts commit ae34372eb8408b3d07e870f1939f99007a730d28. 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/symlink.c')
-rw-r--r--fs/kernfs/symlink.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/fs/kernfs/symlink.c b/fs/kernfs/symlink.c
index b2c106ca3434..a03e26036ef9 100644
--- a/fs/kernfs/symlink.c
+++ b/fs/kernfs/symlink.c
@@ -40,13 +40,9 @@ struct kernfs_node *kernfs_create_link(struct kernfs_node *parent,
kn->symlink.target_kn = target;
kernfs_get(target); /* ref owned by symlink */
- error = -ENOENT;
- if (kernfs_get_active(parent)) {
- kernfs_addrm_start(&acxt);
- error = kernfs_add_one(&acxt, kn, parent);
- kernfs_addrm_finish(&acxt);
- kernfs_put_active(parent);
- }
+ kernfs_addrm_start(&acxt);
+ error = kernfs_add_one(&acxt, kn, parent);
+ kernfs_addrm_finish(&acxt);
if (!error)
return kn;