vm: fix incorrect unlock error path in madvise_free_huge_pmd

Commit b8d3c4c3009d ("mm/huge_memory.c: don't split THP page when
MADV_FREE syscall is called") introduced this new function, but got the
error handling for when pmd_trans_huge_lock() fails wrong.  In the
failure case, the lock has not been taken, and we should not unlock on
the way out.

Cc: Minchan Kim <minchan@kernel.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
diff --git a/mm/huge_memory.c b/mm/huge_memory.c
index b2db981..50342ef 100644
--- a/mm/huge_memory.c
+++ b/mm/huge_memory.c
@@ -1561,7 +1561,7 @@
 	int ret = 0;
 
 	if (!pmd_trans_huge_lock(pmd, vma, &ptl))
-		goto out;
+		goto out_unlocked;
 
 	orig_pmd = *pmd;
 	if (is_huge_zero_pmd(orig_pmd)) {