mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [RFC] How should delete_resource() handle children?
@ 2004-02-10 19:33 Matthew Wilcox
  2004-02-19  1:48 ` Randy.Dunlap
  0 siblings, 1 reply; 5+ messages in thread
From: Matthew Wilcox @ 2004-02-10 19:33 UTC (permalink / raw)
  To: linux-kernel


If you call release_resource() on a resource that has children, all
of those children are silently removed from the list too.  Does anybody
currently depend on that behaviour?

There are three valid behaviours I can think of for this:

 * Current behaviour, on the assumption that all the children of this
   resource are also owned by this device, and so removing them is the
   right thing to do.

 * BUG_ON() on the basis you should never do this.

 * Reparent the children to the parent resource of the one being released.

The first option has the problem that if the children of the resource
belong to some other part of the system, they still have pointers into
their parent which is now gone.  Memory corruption will follow.

The second option has the problem that if you *do* need to delete this
resource but keep its children linked in, you can't do it in a race-free
manner.

The third option has the problem that if you were relying on the current
behaviour of release_resource(), the parent/siblings of the deleted
resource still have references to objects you thought were deleted.


I like the third option best.  Now that we have insert_resource(), the
corresponding release_resource() should leave the children in the state
they were in before.

An alternative possibility would be to introduce a remove_resource()
that implements the reparenting option and leave the current behaviour
of release_resource() alone.


Comments?

-- 
"Next the statesmen will invent cheap lies, putting the blame upon 
the nation that is attacked, and every man will be glad of those
conscience-soothing falsities, and will diligently study them, and refuse
to examine any refutations of them; and thus he will by and by convince 
himself that the war is just, and will thank God for the better sleep 
he enjoys after this process of grotesque self-deception." -- Mark Twain

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2004-02-19  2:20 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-02-10 19:33 [RFC] How should delete_resource() handle children? Matthew Wilcox
2004-02-19  1:48 ` Randy.Dunlap
2004-02-19  2:12   ` Nick Piggin
2004-02-19  2:07     ` Randy.Dunlap
2004-02-19  2:20   ` Matthew Wilcox

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®