Hi john,

Thanks for your test.
I am on a vacation until 3, January.
I will investigate the issue when I am back to work.

Thanks,
Changwei

Sent from my iPhone

> On 30 Dec 2017, at 5:17 AM, John Lightsey <j...@nixnuts.net> wrote:
> 
>> On Thu, 2017-12-28 at 06:38 +0000, Changwei Ge wrote:
>> Hi Alex,
>> 
>>> On 2017/12/28 14:22, alex chen wrote:
>>> We has doubled extent number in ocfs2_populate_write_desc(), so
>>> here we don't need to double again.
>> 
>> I think your comment here makes sense.
>> I will remove the multiplier 2 in my next version of this patch.
>> 
> 
> This may have made it function in testing where it should have failed.
> 
> I backported this patch to Debian's 4.9.65 kernel today, removed the *2
> multiplier, and hit a related assertion failure in this codepath:
> 
> ocfs2_mark_extent_written
> ocfs2_change_extent_flag
>   ocfs2_split_extent
>    ocfs2_split_and_insert
>     ocfs2_grow_tree
>      ocfs2_add_branch
>       ocfs2_create_new_meta_bhs
>        ocfs2_claim_metadata
> 
> The assertion failure in ocfs2_claim_metadata() was
> 
> BUG_ON(ac->ac_bits_wanted < (ac->ac_bits_given + bits_wanted));
> 
> My guess is that meta_ac was allocated at the beginning of the write,
> then the tree was truncated during the write, so the actual allocation
> is requesting more than was originally reserved.
> 
> It seems like the codepaths where meta_ac != NULL also need to know
> about the list of extents available in et_dealloc.
> 
> The Perl code I used to hit this bug is attached.
> <directio.pl>
> _______________________________________________
> Ocfs2-devel mailing list
> Ocfs2-devel@oss.oracle.com
> https://oss.oracle.com/mailman/listinfo/ocfs2-devel

_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

Reply via email to