fs/hugetlbfs/inode.c: fix hwpoison reserve accounting
[sfrench/cifs-2.6.git] / fs / hugetlbfs / inode.c
index 59073e9f01a410f29150a3abf0087ac28409ad5b..ed113ea17affe6475523434d475aa2d94f6ce9c7 100644 (file)
@@ -842,9 +842,12 @@ static int hugetlbfs_error_remove_page(struct address_space *mapping,
                                struct page *page)
 {
        struct inode *inode = mapping->host;
+       pgoff_t index = page->index;
 
        remove_huge_page(page);
-       hugetlb_fix_reserve_counts(inode);
+       if (unlikely(hugetlb_unreserve_pages(inode, index, index + 1, 1)))
+               hugetlb_fix_reserve_counts(inode);
+
        return 0;
 }