• Andrew Morton's avatar
    [PATCH] ext3: fix data=journal mode · de285c52
    Andrew Morton authored
    ext3's fully data-journalled mode has been broken for a year.  This patch
    fixes it up.
    
    The prepare_write/commit_write/writepage implementations have been split up.
    Instead of having each function handle all three journalling mode we now have
    three separate sets of address_space_operations.
    
    The problematic part of data=journal is MAP_SHARED writepage traffic: pages
    which don't have buffers.  In 2.4 these were cheatingly treated as
    data-ordered buffers and that caused several nasty problems.
    
    Here we do it properly: writepage traffic is fully journalled.  This means
    that the various workarounds for the 2.4 scheme can be removed, when I
    remember where they all are.
    
    The PG_checked flag has been borrowed: it it set in the atomic set_page_dirty
    a_op to tell the subsequent writepage() that this page needs to have buffers
    attached, dirtied and journalled.
    
    This rather defines PG_checked as "fs-private info in page->flags" and it
    should be renamed sometime.
    de285c52
transaction.c 61.5 KB