tag name | log-recovery-fixes-5.14_2021-06-18 (0462e549d44254d7be686c2d1795a4af245e80b5) |
tag date | 2021-06-18 11:51:53 -0700 |
tagged by | Darrick J. Wong <djwong@kernel.org> |
tagged object | commit 386a03c009... |
xfs: minor fixes to log recovery problems
This series fixes a couple of bugs that I found in log recovery. The
first problem is that we don't reserve space for per-AG btree expansion
when we inactivate inodes during log recovery. If a file with shared
blocks were to be unlinked, this can result in transaction failure
because inactivation assumes that it doesn't need to reserve blocks to
free files and cannot handle a refcount btree expansion.
The second problem addressed here is that if log recovery fails due to
something that doesn't directly impact the log (like ENOSPC during
transaction allocation, or ENOMEM allocating buffers) it will leave the
log running, which means that it writes an unmount record after recovery
fails. The /next/ mount will see a clean log and start running, even
though the metadata isn't consistent.
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEUzaAxoMeQq6m2jMV+H93GTRKtOsFAmDM60kACgkQ+H93GTRK
tOtu8g//ZAAxtGg1cfjKFeOGe+q1N1heIbhtAp5ZUQ4AZyu8e3OXEr+2abmg1uIS
JSzb0rBM8wUa03m/+VZxxqWXPaJmEKKIx31a7WtUFfyL5fzn2IpEOFo1/vke523f
GOCFMZM31RVVkzkrwSug+6yM8ybLoyQ/T1rsMKYUQq86NtQkn8ZHCVdesqUqE9kH
HnkgakK98tSsfUTst4Np04W+hTXbs8nfMwG+SP9r+d6Mv7kXTlTgr4nZgzvxYY7C
Wkz9hesblruF6VUaJwavDNmfWFm9qdJ6gYKyhAPdfjZUS+sX1HpnHIflANsLWaJi
vo7++8vDSqntcpkbxQ8pXd5AO8rctZOGYXF5pzDD4rJbJ8gwG5bnSCAvlGbC5nf6
qKy53QL4ByUNBx+3XE1dn8j7MCK5eBlvtQPy60CV/OR9ExzrUzxzpyGl2TGtEAWD
hKW5qUyMQ7MFB0Vl/rTlMvBvcg2zd1iQxbGBGJl+d+W2cBLorAHkpHyJ42jfIOcJ
Q818COkg0dxTYJxg9gSAsdSULLDTC/TRuMOhCJ684+isuw3Ss5urcRkvS0+DmSnD
Hbx0WDQNGi37bt8ZwQUdUH/Nkjvosvby3KeY9+PGK1z3io1nzypuw2dpNXZly3Rb
KNmiF49uvC2sLYeh7QKQOBVIuXrACSKRZ/tQ72ABlN+kDMjBms8=
=Z2JV
-----END PGP SIGNATURE-----