Re: init scripts problems ?
denis bonnenfant <[email protected]>
| Newsgroups | gmane.linux.enbd.general |
|---|---|
| Message-ID | <[email protected]> |
denis bonnenfant wrote:
> denis bonnenfant wrote:
>
>> denis bonnenfant wrote:
>>
>>> denis bonnenfant wrote:
>>>
>>>>> I've just checked the enbd_open() code and I see nothing suspicious
>>>>> there _except_ maybe the "media check" that is launched in the kernel:
>>>>>
>>>>> if (do_media_check) {
>>>>> // PTB this invalidates buffers, if necessary
>>>>> ENBD_INFO ("DISK CHECK wanted in open on
>>>>> device nd%s\n",
>>>>> lo->devnam);
>>>>> lo->last_checked = jiffies;
>>>>> check_disk_change(inode->i_bdev);
>>>>> }
>>>>>
>>>>>
>>>>> It may be worth disabling that whole check and seeing what happens. As
>>>>> I recall the kernel tries to read the partition table (the first
>>>>> sectors) of the "disk" (enbd) and then adds the result to
>>>>> /proc/partitions.
>>>>
>>>>
>>>>
>>>>
>>>>>
>>>>> But I'm not even sure the code sticks in OPEN, rather than at the
>>>>> first
>>>>> read. The WCHAN value might indicate.
>>>
>>>
>>>
>>>
>>> OK, i can reproduce it, even with only one nbd device open.
>>>
>>> in this case, WCHAN is page_sync for one enbd-client, and select for
>>> the others.
>>
>>
>>
>> oups, it's sync_page !
>
>
> and stext for the others
>
EIP is at invalidate_bdev+0xa/0x20
eax: 00000000 ebx: 00000000 ecx: ffffff96 edx: f2bc620c
esi: 00000000 edi: 00000000 ebp: f893a5d0 esp: f3ac1ec4
ds: 007b es: 007b ss: 0068
Process bash (pid: 6224, threadinfo=f3ac0000 task=f7e55a40)
Stack: 00000000 c0162e4b 00000000 00000000 f8939fec 00000000 f8938e60 f892b005
00000000 f8931c22 f893a5d0 f8930b4a 00000c98 00000009 f8931c12 f8938e60
00000000 00000002 080e8c08 f8930554 f8938e60 00000000 00000000 d46c0c80
Call Trace:
[<c0162e4b>] __invalidate_device+0x37/0x40
[<f892b005>] enbd_soft_reset+0xa1/0x11c [enbd]
[<f8930554>] enbd_write_proc+0x68/0x300 [enbd]
[<c015be42>] locate_fd+0x6e/0x90
[<c017b813>] proc_file_write+0x27/0x34
[<c014c4e5>] vfs_write+0x8d/0xec
[<c014c5f0>] sys_write+0x40/0x6c
[<c0102d31>] syscall_call+0x7/0xb
C