• Jan Kara's avatar
    ext4: Fix dirtying of journalled buffers in data=journal mode · 56d35a4c
    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.
    Signed-off-by: default avatarJan Kara <jack@suse.cz>
    56d35a4c
inode.c 174 KB