|
@@ -4403,7 +4403,9 @@ int hugetlb_reserve_pages(struct inode *inode,
|
|
|
return 0;
|
|
return 0;
|
|
|
out_err:
|
|
out_err:
|
|
|
if (!vma || vma->vm_flags & VM_MAYSHARE)
|
|
if (!vma || vma->vm_flags & VM_MAYSHARE)
|
|
|
- region_abort(resv_map, from, to);
|
|
|
|
|
|
|
+ /* Don't call region_abort if region_chg failed */
|
|
|
|
|
+ if (chg >= 0)
|
|
|
|
|
+ region_abort(resv_map, from, to);
|
|
|
if (vma && is_vma_resv_set(vma, HPAGE_RESV_OWNER))
|
|
if (vma && is_vma_resv_set(vma, HPAGE_RESV_OWNER))
|
|
|
kref_put(&resv_map->refs, resv_map_release);
|
|
kref_put(&resv_map->refs, resv_map_release);
|
|
|
return ret;
|
|
return ret;
|