diff options
author | Jan Kara <jack@suse.cz> | 2011-06-24 20:29:41 +0200 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2011-07-21 02:47:45 +0200 |
commit | 9ea7df534ed2a18157434a496a12cf073ca00c52 (patch) | |
tree | f8fa09102093cbc60249f96ec4fb91985ae8659b /fs/direct-io.c | |
parent | fat: remove i_alloc_sem abuse (diff) | |
download | linux-9ea7df534ed2a18157434a496a12cf073ca00c52.tar.xz linux-9ea7df534ed2a18157434a496a12cf073ca00c52.zip |
ext4: Rewrite ext4_page_mkwrite() to use generic helpers
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: Jan Kara <jack@suse.cz>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/direct-io.c')
0 files changed, 0 insertions, 0 deletions