mirror of
https://github.com/linux-apfs/apfstests.git
synced 2026-05-01 15:01:44 -07:00
a8b4891d0f
We met a kernel assertion failure recently as below: XFS: Assertion failed: tp->t_blk_res_used <= tp->t_blk_res, file: fs/xfs/xfs_trans.c, line: 309 Eric Sandeen digged into it and find a good reproducer. The problem comes when the several IO vectors are copied in, and it runs into page faults, which stops the copy before all vectors are copied. XFS sees this as a failed/short write, and so tries to unmap the blocks & truncate away the pages in xfs_vm_write_end. generic_perform_write is looping, and comes back around for the other iovecs, but the page is still there, the buffer head is still mapped, and so a new delalloc block isn't allocated - and ends up being allocated at writeback time, despite the fact that we "should" have accounted for it all at delalloc write time, and trips the assert. Signed-off-by: Zorro Lang <zlang@redhat.com> Reviewed-by: Eryu Guan <eguan@redhat.com> Signed-off-by: Eryu Guan <eguan@redhat.com>
3 lines
39 B
Plaintext
3 lines
39 B
Plaintext
QA output created by 443
|
|
wrote 3 bytes
|