• Jan Kara's avatar
    ext3: Fix dirtying of journalled buffers in data=journal mode · 5f11e6a4
    Jan Kara authored
    In data=journal mode, we still use block_write_begin() to prepare page for
    writing. This function can occasionally mark buffer dirty which violates
    journalling assumptions - when a buffer is part of a transaction, it should be
    dirty and a buffer can be already part of a forget list of some transaction
    when block_write_begin() gets called. This violation of journalling assumptions
    then results in "JBD: Spotted dirty metadata buffer..." warnings.
    
    In fact, temporary dirtying the buffer while the page is still locked does not
    really cause problems to the journalling because we won't write the buffer
    until the page gets unlocked. So we just have to make sure to clear dirty bits
    before unlocking the page.
    Reviewed-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
    Signed-off-by: default avatarJan Kara <jack@suse.cz>
    5f11e6a4
inode.c 101 KB