tag name | scrub-fix-ag-header-handling_2022-11-06 (721158a2a8deaa5af03b57c34f2fe9f4837fd542) |
tag date | 2022-11-06 12:38:07 -0800 |
tagged by | Darrick J. Wong <djwong@kernel.org> |
tagged object | commit 8d324edfa6... |
xfs: fix handling of AG[IF] header buffers during scrub
While reading through the online fsck code, I noticed that the setup
code for AG metadata scrubs will attach the AGI, the AGF, and the AGFL
buffers to the transaction. It isn't necessary to hold the AGFL buffer,
since any code that wants to do anything with the AGFL will need to hold
the AGF to know which parts of the AGFL are active. Therefore, we only
need to hold the AGFL when scrubbing the AGFL itself.
The second bug fixed by this patchset is one that I observed while
testing online repair. When a buffer is held across a transaction roll,
its buffer log item will be detached if the bli was clean before the
roll. If we are holding the AG headers to maintain a lock on an AG, we
then need to set the buffer type on the new bli to avoid confusing the
logging code later.
There's also a bug fix for uninitialized memory in the directory scanner
that didn't fit anywhere else.
Ths patchset finishes off by teaching the AGFL repair function to look
for and discard crosslinked blocks instead of putting them back on the
AGFL. Is this a bug fix? Or merely an enhancement?
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEUzaAxoMeQq6m2jMV+H93GTRKtOsFAmNoGy8ACgkQ+H93GTRK
tOt5Bg//RlsH3HLXswxRSyvSVEDU9s57fWK7LTEerWygs+r3elVgwtYHlJWoWp5E
WJ3Zv4vc+00mpuPLEXD0JA4UO9ARyL1LCt8XDMSdJpJCj5mQdBdHXX6PIyLXxZsf
GwBXq4EgZbDe/ZmWbW62sowV6lh2pJHN7edjebZ6X4h9H8eOnTvcKePwP8hWEw+q
4BldH2yN4EcmbxqwzzFGhV/rMvMRapRYl33bHd0o0u+vTnTga+gZd/F7uup6eMGM
XhOy1u77/6P1VqRDxyocdQOu8B1e+sBnSJySb7kQpU+MWb2M2kmHvKMcliax5Lyc
bIuayMcN03iTrjH4Omu1NMRssn5ykXnDeqPBnOdN4IM/UZ/vGZxI+JZQh3nav/14
OBQZNxjhMfE3fP4NIrbw7+KRZsdGC0jbopaS+HxWxWqfoJat1GsFteQebYn+0Mih
0If2stWMcyvrh1vCctpjSj1Z7siA0a8oucQIt+aw/4x8qtQWbAtswGIypYgMVQkK
YACEec65lnVjiVv7OjoDG4THeL5neU335ly3EiCsO/5Zo20WY9a3M8fc2L6ng83z
Sk2Dj8SbpCR0xngS1h0VLy4MSMbY97/35SJtxdD1qvbM9QSScwtSl7t0tCaw9/n5
aFLO9Tvzlh0qQof8KvyKjfepxsYm/hPKRSo/5F+RmQklsqk58Wo=
=+UlK
-----END PGP SIGNATURE-----