CVE-2024-55641

xfs: unlock inodes when erroring out of xfs_trans_alloc_dir

published January 11, 2025

CVSS
—
EPSS
0%
Percentile
6.8
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

xfs: unlock inodes when erroring out of xfs_trans_alloc_dir

Debugging a filesystem patch with generic/475 caused the system to hang

after observing the following sequences in dmesg:

XFS (dm-0): metadata I/O error in "xfs_imap_to_bp+0x61/0xe0 [xfs]" at daddr 0x491520 len 32 error 5

XFS (dm-0): metadata I/O error in "xfs_btree_read_buf_block+0xba/0x160 [xfs]" at daddr 0x3445608 len 8 error 5

XFS (dm-0): metadata I/O error in "xfs_imap_to_bp+0x61/0xe0 [xfs]" at daddr 0x138e1c0 len 32 error 5

XFS (dm-0): log I/O error -5

XFS (dm-0): Metadata I/O Error (0x1) detected at xfs_trans_read_buf_map+0x1ea/0x4b0 [xfs] (fs/xfs/xfs_trans_buf.c:311). Shutting down filesystem.

XFS (dm-0): Please unmount the filesystem and rectify the problem(s)

XFS (dm-0): Internal error dqp->q_ino.reserved < dqp->q_ino.count at line 869 of file fs/xfs/xfs_trans_dquot.c. Caller xfs_trans_dqresv+0x236/0x440 [xfs]

XFS (dm-0): Corruption detected. Unmount and run xfs_repair

XFS (dm-0): Unmounting Filesystem be6bcbcc-9921-4deb-8d16-7cc94e335fa7

The system is stuck in unmount trying to lock a couple of inodes so that

they can be purged. The dquot corruption notice above is a clue to what

happened -- a link() call tried to set up a transaction to link a child

into a directory. Quota reservation for the transaction failed after IO

errors shut down the filesystem, but then we forgot to unlock the inodes

on our way out. Fix that.

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00176 · 6.8th percentile
Published
2025-01-11T12:29Z
EPSS history
Timeline
  • 11 JAN 12:29Z
    xfs: unlock inodes when erroring out of xfs_trans_alloc_dir
    cvelistv5