Re: [PATCH update] firewire: fix "kobject_add failed for fw* with -EEXIST"

From: Jarod Wilson
Date: Mon Jan 28 2008 - 11:49:28 EST


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@xxxxxxxxxxxxxxxxx>

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@xxxxxxxxxx
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/