• Matthew Wilcox (Oracle)'s avatar
    mm/huge_memory: Fix xarray node memory leak · 69a37a8b
    Matthew Wilcox (Oracle) authored
    If xas_split_alloc() fails to allocate the necessary nodes to complete the
    xarray entry split, it sets the xa_state to -ENOMEM, which xas_nomem()
    then interprets as "Please allocate more memory", not as "Please free
    any unnecessary memory" (which was the intended outcome).  It's confusing
    to use xas_nomem() to free memory in this context, so call xas_destroy()
    instead.
    
    Reported-by: syzbot+9e27a75a8c24f3fe75c1@syzkaller.appspotmail.com
    Fixes: 6b24ca4a ("mm: Use multi-index entries in the page cache")
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarMatthew Wilcox (Oracle) <willy@infradead.org>
    69a37a8b
xarray.c 58.8 KB