Messages in this thread | | | From | Neil Brown <> | Date | Thu, 5 Jun 2008 09:12:02 +1000 | Subject | Re: 2.6.25 md oops during boot. |
| |
On Wednesday June 4, davej@redhat.com wrote: > Hi Neil, > Here's an odd one. > https://bugzilla.redhat.com/show_bug.cgi?id=442204 > > Slightly old (.25-rc8-git7), but I don't recall anything changing between > then and .25 final that could explain this. > > Dave
Hi Dave.
Yes, Odd.
It appear that sysfs_addrm_start is being called with parent_sd == NULL.
That implies that sysfs_create_dir is being given a kobj where ->parent is non-NULL, and ->parent->sd is NULL.
So kobject_add is being given a parent with a NULL ->sd.
So in bind_rdev_to_array, mddev->kobj.sd is NULL.
So in md_probe, either kobject_init_and_add is failing to set up ->sd properly (which should result in an error message "md: cannot register md0/md - name in use" ) or alloc_disk is failing.
The most likely scenario is that alloc_disk is failing, so the md_probe call in autorun_devices (line 3804 of md.c) fails. The following mddev_find creates a new mddev which is not properly initialised and gets used.
I wouldn't say this is a likely scenario as it requires (I think) kmalloc failure very early in boot. But I cannot see any other possible cause.
I'll see about getting the error paths handled better.
NeilBrown
| |