diff options
authorMatthew Wilcox <>2019-08-13 23:09:37 +0000
committerJohannes Weiner <>2019-08-13 23:09:37 +0000
commitc7324dd1dcaeb609aa7be4b8af516174932c0cb7 (patch)
parent65c0e3cdb18263cfe0eeee0c30df9e730b967ef3 (diff)
Releasing resources with children
What does it mean to release a resource with children? Should the children become children of the released resource's parent? Should they be released too? Should we fail the release? I bet we have no callers who expect this right now, but with insert_resource() we may get some. At the point where someone hits this BUG we can figure out what semantics we want. Signed-off-by: Matthew Wilcox <> Cc: Matthew Wilcox <> Signed-off-by: Andrew Morton <>
1 files changed, 2 insertions, 0 deletions
diff --git a/kernel/resource.c b/kernel/resource.c
index a6fd3317f9f3..03e40439de54 100644
--- a/kernel/resource.c
+++ b/kernel/resource.c
@@ -222,6 +222,8 @@ static int __release_resource(struct resource *old, bool release_child)
+ WARN_ON(old->child);
p = &old->parent->child;
for (;;) {
tmp = *p;