Re: [OOPS] sysfs_hash_and_remove (was Re: What protection ....)

From: James Bottomley
Date: Sat Nov 26 2005 - 17:35:28 EST


On Thu, 2005-11-24 at 15:34 +0100, Ingo Molnar wrote:
> * Maneesh Soni <maneesh@xxxxxxxxxx> wrote:
>
> > So, IMO, it is necessary to explicitly remove links before
> > unregistering the kobject in case of bidirectional cross symlinks.
> >
> > The patch from James, is working, because it is not creating the cross
> > symlink itself.
>
> so, what is your suggestion, what should be done to fix the problem? The
> patch below:
> isnt fit for upstream inclusion :-)

Well, the patch was just intended to confirm the problem diagnosis.

The solution Maneesh appears to be advocating to the issue is imposing
del ordering, the issue being that device_del is the call that actually
removes the directories and symlinks, so all callers have to make sure
they've called class_device_del for every class on the device before
calling device_del. Since this trigger point happens regardless of
references, we can't expect references to get us out of this one, so
we'll have to audit the failing code manually. I did find and fix one
of these issues in SCSI, but there may be more lurking around ...

James


-
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/