[prev in list] [next in list] [prev in thread] [next in thread] 

List:       dragonfly-kernel
Subject:    cluster01.patch - bug fix for file clustering code
From:       Matthew Dillon <dillon () apollo ! backplane ! com>
Date:       2006-03-07 20:40:15
Message-ID: 200603072040.k27KeF8G076193 () apollo ! backplane ! com
[Download RAW message or body]

    This patch is fairly straightforward but needs some additinoal testing
    before I commit it.  I intend to commit it on Friday.  I found it
    while working on the block number -> 64 bit offset BUF/BIO conversion.

fetch http://apollo.backplane.com/DFlyMisc/cluster01.patch

    Basically the problem being addressed here is in a bit of the asynchronous
    read-ahead code.  The code is improperly issuing BMAPs for data blocks
    whos related buffers have not been acquired, then acquiring the buffers
    and unconditionally setting the block translation field after the
    fact.  If the buffer is reallocated to a different block inbetween
    then a stale translation can wind up being assigned to it.  If the
    buffer is later dirtied, then the filesystem could become corrupted.

    The sequence of events required to produce corruption would occur
    fairly rarely, which is a similar M.O. to the dirbad panics.
    Unfortunately, as before, there is no smoking gun here so the bug might
    or might not be related.

    The same bug exists in FreeBSD-current.

							-Matt

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic