The reference counting issue happens when ret is zero, the function forgets to decrease the refcount of handle increased by ext4_journal_start(). Fix this issue by using ext4_journal_stop() to decrease the refcount of handle. Signed-off-by: Chenyuan Mi <cymi20@xxxxxxxxxxxx> Signed-off-by: Xiyu Yang <xiyuyang19@xxxxxxxxxxxx> Signed-off-by: Xin Tan <tanxin.ctf@xxxxxxxxx> --- fs/ext4/inode.c | 1 + 1 file changed, 1 insertion(+) diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index d18852d6029c..90c57d8e3de1 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c @@ -1249,6 +1249,7 @@ static int ext4_write_begin(struct file *file, struct address_space *mapping, put_page(page); return ret; } + ext4_journal_stop(handle); *pagep = page; return ret; } -- 2.17.1