diff options
author | Jan Kara <jack@suse.cz> | 2011-06-24 14:29:41 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2011-07-20 20:47:45 -0400 |
commit | 9ea7df534ed2a18157434a496a12cf073ca00c52 (patch) | |
tree | f8fa09102093cbc60249f96ec4fb91985ae8659b /mm/filemap.c | |
parent | 582686915803e34adc8fdcd90bff7ca7f6a42221 (diff) | |
download | linux-9ea7df534ed2a18157434a496a12cf073ca00c52.tar.bz2 |
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 'mm/filemap.c')
0 files changed, 0 insertions, 0 deletions