• Jan Kara's avatar
    ext4: Rewrite ext4_page_mkwrite() to use generic helpers · 9ea7df53
    Jan Kara authored
    Rewrite ext4_page_mkwrite() to use __block_page_mkwrite() helper. This
    removes the need of using i_alloc_sem to avoid races with truncate which
    seems to be the wrong locking order according to lock ordering documented in
    mm/rmap.c. Also calling ext4_da_write_begin() as used by the old code seems to
    be problematic because we can decide to flush delay-allocated blocks which
    will acquire s_umount semaphore - again creating unpleasant lock dependency
    if not directly a deadlock.
    
    Also add a check for frozen filesystem so that we don't busyloop in page fault
    when the filesystem is frozen.
    Signed-off-by: default avatarJan Kara <jack@suse.cz>
    Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
    9ea7df53
inode.c 172 KB