Here is a modification to the reservation tracking for fixup on errors. It is a more general change, but should work for the hugetlb_mcopy_pte_atomic case as well. Perhaps use this as a prerequisite for your fix(es)? Pretty sure this will eliminate the need for the call to hugetlb_unreserve_pages. Mike Kravetz (2): hugetlb: rename HPageRestoreReserve flag to HPageRestoreRsvCnt hugetlb: add new hugetlb specific flag HPG_restore_rsv_map fs/hugetlbfs/inode.c | 3 +- include/linux/hugetlb.h | 17 +++++-- mm/hugetlb.c | 108 ++++++++++++++++++++++++++++------------ mm/userfaultfd.c | 14 +++--- 4 files changed, 99 insertions(+), 43 deletions(-) -- 2.31.1