[lkml]   [2000]   [Dec]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: test12-pre5

    On Mon, 4 Dec 2000, Alexander Viro wrote:
    > On Mon, 4 Dec 2000, Linus Torvalds wrote:
    > >
    > > Ok, this contains one of the fixes for the dirty inode buffer list (the
    > > other fix is pending, simply because I still want to understand why it
    > > would be needed at all). Al?
    > See previous posting. BTW, -pre5 doesn't do the right thing in clear_inode().
    > Scenario: bh of indirect block is busy (whatever reason, flush_dirty_buffers(),
    > anything that can bump ->b_count for a while). ext2_truncate() frees the
    > thing and does bforget(). bh is left on the inode's list. Woops...

    So? Why wouldn't clear_inode() get rid of it?

    > The minimal fix would be to make clear_inode() empty the list. IMO it's
    > worse than preventing the freed stuff from being on that list...

    This _is_ what clear_inode() does in pre5 (and in pre4, for that matter):

    void clear_inode(struct inode *inode)
    if (!list_empty(&inode->i_dirty_buffers))


    which I find perfectly readable. And should mean that no dirty buffers
    should be associated with the inode any more. ext2 calls clear_inode()
    from ext2_free_inode(), and as far as I can tell the only thing that can
    happen after that is that the inode is still scheduled for write-out
    (which explains how the bug you fixed would cause a dirty block to be
    attached to the inode _after_ we did a clear_inode() on it).

    Or are you thinking of something else?


    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    Please read the FAQ at

     \ /
      Last update: 2005-03-22 12:51    [W:0.021 / U:16.188 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site