• Jan Kara's avatar
    ext4: Mark page for delayed dirtying only if it is pinned · 3f5d3063
    Jan Kara authored
    In data=journal mode, page should be dirtied only when it has buffers
    for checkpoint or it is writeably mapped. In the first case, we don't
    need to do anything special. In the second case, page was already added
    to the journal by ext4_page_mkwrite() and since transaction commit
    writeprotects mapped pages again, page should be writeable (and thus
    dirtied) only while it is part of the running transaction. So nothing
    needs to be done either. The only special case is when someone pins the
    page and uses this pin for modifying page data. So recognize this
    special case and only then mark the page as having data that needs
    adding to the journal.
    Signed-off-by: default avatarJan Kara <jack@suse.cz>
    Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
    Link: https://lore.kernel.org/r/20230228051319.4085470-4-tytso@mit.edu
    3f5d3063
inode.c 183 KB