Re: [PATCH] ocfs2: fix the oops problem when write cloned file

From: Gang He
Date: Mon Feb 03 2020 - 00:33:39 EST


Hi Joseph,

before calling ocfs2_refcount_cow() in the function ocfs2_prepare_inode_for_write(), we do not use inode buffer_head.
So, we can let buffer_head is NULL.
But, when we invoke ocfs2_refcount_cow() function, we have to pass inode buffer_head without NULL pointer.
That is why writing clone file will cause oops and kill the user-space process.

Thanks
Gang

________________________________________
From: Joseph Qi <joseph.qi@xxxxxxxxxxxxxxxxx>
Sent: Monday, February 3, 2020 1:15 PM
To: Gang He; mark@xxxxxxxxxx; jlbec@xxxxxxxxxxxx; gechangwei@xxxxxxx; Shuning Zhang
Cc: linux-kernel@xxxxxxxxxxxxxxx; ocfs2-devel@xxxxxxxxxxxxxx; akpm@xxxxxxxxxxxxxxxxxxxx
Subject: Re: [PATCH] ocfs2: fix the oops problem when write cloned file



On 20/2/3 10:17, Gang He wrote:
> Hello Joseph, Changwei, Sunny and all,
>
> Could you help to review this patch?
> This patch will fix the oops problem caused by write ocfs2 clone files.
> The root cause is inode buffer head is NULL when calling ocfs2_refcount_cow.
> Secondly, we should use EX meta lock when calling ocfs2_refcount_cow.
>
Before commit e74540b28556, we may also use NULL buffer head in case of
overwrite, so why there is no such issue before?

Thanks,
Joseph