Signed-off-by: Andrew Morton --- fs/ext4/inode.c | 5 +++++ 1 file changed, 5 insertions(+) diff -puN fs/ext4/inode.c~ext4-mm-delalloc-ext4-release-page-when-write_begin-failed fs/ext4/inode.c --- a/fs/ext4/inode.c~ext4-mm-delalloc-ext4-release-page-when-write_begin-failed +++ a/fs/ext4/inode.c @@ -1522,6 +1522,11 @@ static int ext4_da_write_begin(struct fi ret = block_write_begin(file, mapping, pos, len, flags, pagep, fsdata, ext4_da_get_block_prep); + if (ret < 0) { + unlock_page(page); + page_cache_release(page); + } + return ret; } _