ext4: fix locking for O_APPEND writes
authorTheodore Ts'o <tytso@mit.edu>
Mon, 21 Apr 2014 18:37:52 +0000 (14:37 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Mon, 21 Apr 2014 18:37:52 +0000 (14:37 -0400)
commitf5ccfe1ddbaf9d923a3ebdadcb1e5e32d83e9c28
treef79ae8f5ac9b34cbb3cb73f14f9706905219aa6b
parent7ed07ba8c3e6160e0af3adc0f59561de154c4c2e
ext4: fix locking for O_APPEND writes

Al Viro pointed out that locking for O_APPEND writes was problematic,
since the location of the write isn't known until after we take the
i_mutex, which impacts the ext4_unaligned_aio() and s_bitmap_maxbytes
check.

For O_APPEND always assume that the write is unaligned so call
ext4_unwritten_wait().  And to solve the second problem, take the
i_mutex earlier before we start the s_bitmap_maxbytes check.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
fs/ext4/file.c