• Dave Chinner's avatar
    XFS: Free buffer pages array unconditionally · 3fc98b1a
    Dave Chinner authored
    The code in xfs_free_buf() only attempts to free the b_pages array if the
    buffer is a page cache backed or page allocated buffer. The extra log buffer
    that is used when the log wraps uses pages that are allocated to a different
    log buffer, but it still has a b_pages array allocated when those pages
    are associated to with the extra buffer in xfs_buf_associate_memory.
    
    Hence we need to always attempt to free the b_pages array when tearing
    down a buffer, not just on buffers that are explicitly marked as page bearing
    buffers. This fixes a leak detected by the kernel memory leak code.
    Signed-off-by: default avatarDave Chinner <david@fromorbit.com>
    Signed-off-by: default avatarAlex Elder <aelder@sgi.com>
    3fc98b1a
xfs_buf.c 40.4 KB