2.6.24 - self-destructing sysfs attributes

From: Andrey Borzenkov
Date: Tue Oct 30 2007 - 15:32:32 EST


I realized that in patch for ACPI battery I created perfect example of
self-destructing sysfs attributes. Basically, on every access to battery
properties we check battery status. If ACPI reports battery not present, we
remove sysfs power_supply object. I.e.

-> user space queries e.g. .../PNP0C0A:00/power_supply/BAT1/energy_now
-> call acpi_battery_update
-> battery gone
-> call power_supply_unregister(.../PNP0C0A:00/power_supply)

I remember discussion about this but am not sure what final outcome is. So
questions

- is it legal in this form?
- what is the proper way to manage such situation?
- if I move (de-)registering of power_supply out of acpi_battery_update, is
extra locking (refcounting) required to keep attributes alive or sysfs will
ensure this?

TIA

-andrey

Attachment: signature.asc
Description: This is a digitally signed message part.