Re: [PATCH 25/20] sysfs: Only support removing emtpy sysfs directories.

Alan Stern
2009-05-27T16:16:09Z

On Wed, 27 May 2009, James Bottomley wrote:

> Hardly ... our current refcounting is on destruction (releases). This
> problem is an instance of visibility (the del calls) we need the
> visibility teardown to work nicely. We currently have no refcounting on
> the visibility. Even if we did (and we could add a ref on when the
> underlying device del calls are done), what happens if the target needs
> to become visible again. Apparently the generic device infrastructure
> can't accept doing an add on a previously del'd device.

Definitely not.

> The most obvious way of fixing this is to have a special case for
> targets of dying hosts ... they could call del early on the
> understanding that they're never getting new underlying devices. That
> would allow the wait to trigger on the last target del, which is what is
> optimal.

I don't understand all the subtle issues here. In other contexts, the
solution would be to initialize a refcount to 1 when the target is
allocated, increment it when a device is added, and decrement it when a
device is removed or the host is removed. When the refcount goes to 0,
the target is deleted. Why wouldn't this kind of approach work?

Alan Stern