@@ -135,8 +135,8 @@ ext4_file_write(struct kiocb *iocb, const struct iovec *iov,
if ((pos > sbi->s_bitmap_maxbytes) ||
(pos == sbi->s_bitmap_maxbytes && length > 0)) {
mutex_unlock(&inode->i_mutex);
- ret = -EFBIG;
- goto errout;
+ mutex_unlock(&EXT4_I(inode)->i_write_mutex);
+ return -EFBIG;
}
if (pos + length > sbi->s_bitmap_maxbytes) {
@@ -196,7 +196,6 @@ ext4_file_write(struct kiocb *iocb, const struct iovec *iov,
if (o_direct)
blk_finish_plug(&plug);
-errout:
if (unaligned_direct_aio)
mutex_unlock(&EXT4_I(inode)->i_write_mutex);
return ret;