Containers: css_put() dilemma
haveblue at us.ibm.com
Tue Jul 17 09:02:11 PDT 2007
On Tue, 2007-07-17 at 08:49 -0700, Paul (宝瑠) Menage wrote:
> Because as soon as you do the atomic_dec_and_test() on css->refcnt and
> the refcnt hits zero, then theoretically someone other thread (that
> already holds container_mutex) could check that the refcount is zero
> and free the container structure.
Then that other task had a reference and itself should have bumped the
count, and the other user would never have seen it hit zero.
Even if there are still pages attached to the container, why not just
have those take a reference, and don't bother actually freeing the
container until the last true reference is dropped?
Does it matter if the destruction callbacks don't happen until well
after an attempt to destroy the container is made?
More information about the Containers