mirror of
https://github.com/torvalds/linux.git
synced 2026-09-22 04:34:03 +02:00
xfs: don't zap the attr fork on repair when there are queued pptr updates
LOLLM noticed that xrep_xattr_rebuild_tree doesn't check for queued
parent pointer updates when it decides that it's going to zap the attr
fork. This is obviously incorrect, so fix that. We hold the IOLOCK and
the ILOCK of sc->ip at that point in time, so we can't race with any
/new/ operations.
Cc: stable@vger.kernel.org # v6.10
Fixes: e5d7ce0364 ("xfs: replay unlocked parent pointer updates that accrue during xattr repair")
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Assisted-by: LOLLM # finding obvious bugs
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
This commit is contained in:
parent
8af9cd79cd
commit
5ee37132ea
|
|
@ -1427,7 +1427,8 @@ xrep_xattr_rebuild_tree(
|
|||
* If we didn't find any attributes to salvage, repair the file by
|
||||
* zapping its attr fork.
|
||||
*/
|
||||
if (rx->attrs_found == 0) {
|
||||
if (rx->attrs_found == 0 &&
|
||||
(!xfs_has_parent(sc->mp) || xfarray_length(rx->pptr_recs) == 0)) {
|
||||
xfs_trans_ijoin(sc->tp, sc->ip, 0);
|
||||
error = xrep_xattr_reset_fork(sc);
|
||||
if (error)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user