]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commit
xfs: don't leak the retained da state when doing a leaf to node conversion
authorDarrick J. Wong <djwong@kernel.org>
Wed, 22 Jun 2022 19:28:52 +0000 (14:28 -0500)
committerEric Sandeen <sandeen@sandeen.net>
Wed, 22 Jun 2022 19:28:52 +0000 (14:28 -0500)
commit52bc85347960b4ea724f04291d3d37df10422e71
treea791fe72a6460fc33d905c3361219857f3cf5365
parent5b39118945c6f7d5d5bd95f211b0405cc8d61e2b
xfs: don't leak the retained da state when doing a leaf to node conversion

Source kernel commit: a618acab136b1b01a4c10957ce8bae70cc9f7ca4

If a setxattr operation finds an xattr structure in leaf format, adding
the attr can fail due to lack of space and hence requires an upgrade to
node format.  After this happens, we'll roll the transaction and
re-enter the state machine, at which time we need to perform a second
lookup of the attribute name to find its new location.  This lookup
attaches a new da state structure to the xfs_attr_item but doesn't free
the old one (from the leaf lookup) and leaks it.  Fix that.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Allison Henderson <allison.henderson@oracle.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
libxfs/xfs_attr.c