HomeFreeBSD

Destroy ARC buffer in case of fill error

Description

Destroy ARC buffer in case of fill error

In case of error dmu_buf_fill_done() returns the buffer back into
DB_UNCACHED state. Since during transition from DB_UNCACHED into
DB_FILL state dbuf_noread() allocates an ARC buffer, we must free
it here, otherwise it will be leaked.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Jorgen Lundman <lundman@lundman.net>
Signed-off-by: Alexander Motin <mav@FreeBSD.org>
Sponsored by: iXsystems, Inc.
Closes #15665
Closes #15802
Closes #16216

PR: 276341

(cherry picked from commit 02c5aa9b092818785ed8db4e2246a828278138e3)

Details

Provenance
mavAuthored on May 25 2024, 2:11 AM
markjCommitted on Jun 17 2024, 2:25 PM
Parents
rG6d451a20ef70: libdtrace: Work around a warning from flex
Branches
Unknown
Tags
Unknown