In allocate_file_region_entries() error path the function region_chg() returns but does not release the lock 'resv->lock'. Release lock 'resv->lock' before returning. Fixes: 0db9d74ed8845 ("hugetlb: disable region_add file_region coalescing") Signed-off-by: Ethan Tidmore --- mm/hugetlb.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mm/hugetlb.c b/mm/hugetlb.c index d6ea11113f1d..230fd8c63588 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -807,8 +807,10 @@ static long region_chg(struct resv_map *resv, long f, long t, if (*out_regions_needed == 0) *out_regions_needed = 1; - if (allocate_file_region_entries(resv, *out_regions_needed)) + if (allocate_file_region_entries(resv, *out_regions_needed)) { + spin_unlock(&resv->lock); return -ENOMEM; + } resv->adds_in_progress += *out_regions_needed; -- 2.53.0