mbox series

[0/4] xfs: various rough fixes

Message ID 155259893433.30230.6566995969675098053.stgit@magnolia (mailing list archive)
Headers show
Series xfs: various rough fixes | expand

Message

Darrick J. Wong March 14, 2019, 9:28 p.m. UTC
Hi all,

Here's a bunch of crazy fixes that I've been working on.  The first one
tries to solve the fragmentation problems that Dave reported[1] in the
stupidest way possible.  Namely, we only ever trim post-eof speculative
preallocations the /first/ time that we close a file, regardless of the
dirty state.

The second patch tries to fix a stale data exposure bug revealed by
generic/042.  It does this by changing xfs to convert delalloc extents
to unwritten extents and only converting those into real extents once
the data write succeeds.  We already do this for the cow fork, so it
seems pretty straightforward to do the same for the data fork.

The third patch adds instrumentation to make it easier to detect when
we roll a transaction beyond the initial logcount, and therefore are
having to reserve more log space.

The fourth patch effectively increases the number of times we can roll
an end_cow transaction without having to go back for more reservation.
This is intended to fix the problem outlined in [2] which will fix the
periodic xfs/347 deadlocks.

[1] https://marc.info/?l=linux-xfs&m=154951612101291&w=2
[2] https://marc.info/?l=linux-xfs&m=155241472431249&w=2


If you're going to start using this mess, you probably ought to just
pull from my git trees, which are linked below.

This is an extraordinary way to destroy everything.  Enjoy!
Comments and questions are, as always, welcome.

--D

kernel git tree:
https://git.kernel.org/cgit/linux/kernel/git/djwong/xfs-linux.git/log/?h=rough-fixes