Messages in this thread | | | From | Jarod Wilson <> | Subject | Re: [PATCH update] firewire: fix "kobject_add failed for fw* with -EEXIST" | Date | Mon, 28 Jan 2008 11:48:53 -0500 |
| |
On Sunday 27 January 2008 12:20:40 pm Stefan Richter wrote: > There is a race between shutdown and creation of devices: fw-core may > attempt to add a device with the same name of an already existing > device. http://bugzilla.kernel.org/show_bug.cgi?id=9828 > > Impact of the bug: Happens rarely, forces the user to unplug and replug > the new device to get it working.
If you're crazy enough to set up a software raid array on two firewire drives that end up contending for the fwX device, its much worse than simply having to unplug and replug though, since all hell breaks loose at the fs level and the array level.
We may have another issue there though, as when this happened to me, the md layer apparently never noticed (after ~6 hours) that one of the array members had disappeared -- not sure if that's firewire's fault or md's though... This will presumably avoid this situation entirely, but worth noting that there may still be somewhere we need to better communicate status to an upper layer.
> The fix moves deregistration of the minor number and device_unregister() > into a common rw_sem protected section. > > We also move the ref count increment from fw_device_op_open into an > rw_sem protected section with the lookup of the device, so that the > device pointer can't become invalid between lookup and usage. > > Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Looks straight-forward enough, and I'll give these a spin shortly and see if I can reproduce the situation I was hitting with my raid array...
-- Jarod Wilson jwilson@redhat.com
| |