• Darrick J. Wong's avatar
    xfs: always free inline data before resetting inode fork during ifree · 98c4f78d
    Darrick J. Wong authored
    In xfs_ifree, we reset the data/attr forks to extents format without
    bothering to free any inline data buffer that might still be around
    after all the blocks have been truncated off the file.  Prior to commit
    43518812 ("xfs: remove support for inlining data/extents into the
    inode fork") nobody noticed because the leftover inline data after
    truncation was small enough to fit inside the inline buffer inside the
    fork itself.
    
    However, now that we've removed the inline buffer, we /always/ have to
    free the inline data buffer or else we leak them like crazy.  This test
    was found by turning on kmemleak for generic/001 or generic/388.
    Signed-off-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
    Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
    98c4f78d
xfs_inode.c 98.3 KB