diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index 081bb25a9ad3ceb442b10e0f7ec10c5fd36eec16..ecb5725919245a4ef10ec96cdafc3b13969b952a 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c @@ -959,7 +959,11 @@ static int ext4_ordered_write_end(struct file *file, ext4_orphan_add(handle, inode); if (ret2 < 0) ret = ret2; + } else { + unlock_page(page); + page_cache_release(page); } + ret2 = ext4_journal_stop(handle); if (!ret) ret = ret2;