[lkml]   [2009]   [Mar]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH v2] issue storage device flush via sync_blockdev()
    On Thu, Mar 26, 2009 at 11:17:44PM -0400, Jeff Garzik wrote:
    > Theodore Tso wrote:
    >> Jeff,
    >> FYI, I tried your patch; it causes the lvm process called out of
    >> the initramfs from an Ubuntu 8.10 system to blow up while trying to
    >> set up the root filesystem. The stack trace was:
    >> generic_make_request+0x2a3/0x2e6
    >> trace_hardirqs_on_caller+0x111/0x135
    >> mempool_alloc_slab+0xe/0x10
    >> mempool_alloc+0x42/0xe0
    >> submit_bio+0xad/0xb5
    >> bio_alloc_bioset+0x21/0xfc
    >> blkdev_issue_flush+0x7f/0xfc
    >> syn_blockdev+0x2a/0x36
    >> __blkdev_put_0x44/0x131
    >> blkdev_put+0xa/0xc
    >> blkdev_close+0x2e/0x32
    >> __fput+0xcf/0x15f
    >> fput+0x19/0x1b
    >> filp_close+0x51/0x5b
    >> sys_close+0x73/0xad
    > hmmm, I wonder if DM/LVM doesn't like blkdev_issue_flush, or it's too
    > early, or what. I'll toss Ubuntu onto a VM and check it out...

    I forgot to mention. The failure was the EIP was NULL; so it looks
    like we called a null function pointer. The only function pointer
    derference I can find is q->make_request_fn() in line 1460 of
    blk-core.c, in __generic_make_request. But that doesn't seem make any

    Anyway, maybe you can figure out what's going on. The problem
    disappeared as soon as I popped off this patch, though, so it was
    pretty clearly the culprit.

    - Ted

     \ /
      Last update: 2009-03-27 04:35    [W:0.021 / U:13.556 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site