diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-01-13 17:20:56 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-01-13 17:20:56 -0500 |
commit | 7653fe9d6cddc3fc5e4220608079006d8ac0054c (patch) | |
tree | 637f23e79a8956fe1a59faa62060ef369ab5f421 /fs/kernfs/kernfs-internal.h | |
parent | f4b3e631b39db31f7375cce0b5e4111d14cde511 (diff) |
Revert "kernfs: remove kernfs_addrm_cxt"
This reverts commit 99177a34110889a8f2c36420c34e3bcc9bfd8a70.
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/kernfs-internal.h')
-rw-r--r-- | fs/kernfs/kernfs-internal.h | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/fs/kernfs/kernfs-internal.h b/fs/kernfs/kernfs-internal.h index 4bc57848076c..e9ec38c86074 100644 --- a/fs/kernfs/kernfs-internal.h +++ b/fs/kernfs/kernfs-internal.h | |||
@@ -46,6 +46,13 @@ static inline struct kernfs_root *kernfs_root(struct kernfs_node *kn) | |||
46 | } | 46 | } |
47 | 47 | ||
48 | /* | 48 | /* |
49 | * Context structure to be used while adding/removing nodes. | ||
50 | */ | ||
51 | struct kernfs_addrm_cxt { | ||
52 | struct kernfs_node *removed; | ||
53 | }; | ||
54 | |||
55 | /* | ||
49 | * mount.c | 56 | * mount.c |
50 | */ | 57 | */ |
51 | struct kernfs_super_info { | 58 | struct kernfs_super_info { |
@@ -94,7 +101,10 @@ extern const struct inode_operations kernfs_dir_iops; | |||
94 | 101 | ||
95 | struct kernfs_node *kernfs_get_active(struct kernfs_node *kn); | 102 | struct kernfs_node *kernfs_get_active(struct kernfs_node *kn); |
96 | void kernfs_put_active(struct kernfs_node *kn); | 103 | void kernfs_put_active(struct kernfs_node *kn); |
97 | int kernfs_add_one(struct kernfs_node *kn, struct kernfs_node *parent); | 104 | void kernfs_addrm_start(struct kernfs_addrm_cxt *acxt); |
105 | int kernfs_add_one(struct kernfs_addrm_cxt *acxt, struct kernfs_node *kn, | ||
106 | struct kernfs_node *parent); | ||
107 | void kernfs_addrm_finish(struct kernfs_addrm_cxt *acxt); | ||
98 | struct kernfs_node *kernfs_new_node(struct kernfs_root *root, const char *name, | 108 | struct kernfs_node *kernfs_new_node(struct kernfs_root *root, const char *name, |
99 | umode_t mode, unsigned flags); | 109 | umode_t mode, unsigned flags); |
100 | 110 | ||