Re: 2.6.25 md oops during boot.

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Dave Jones <davej@...>
Cc: Linux Kernel <linux-kernel@...>
Date: Wednesday, June 4, 2008 - 7:12 pm

On Wednesday June 4, davej@redhat.com wrote:

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
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Re: 2.6.25 md oops during boot., Neil Brown, (Wed Jun 4, 7:12 pm)