DragonFly BSD
DragonFly kernel List (threaded) for 2006-03
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

cluster01.patch - bug fix for file clustering code

From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxx>
Date: Tue, 7 Mar 2006 12:40:15 -0800 (PST)

    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.


[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]