aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/virt/kvm/guest_memfd.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--virt/kvm/guest_memfd.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/virt/kvm/guest_memfd.c b/virt/kvm/guest_memfd.c
index 3bfe1824ec2d..9148b9679bb1 100644
--- a/virt/kvm/guest_memfd.c
+++ b/virt/kvm/guest_memfd.c
@@ -567,8 +567,9 @@ static int __kvm_gmem_get_pfn(struct file *file, struct kvm_memory_slot *slot,
return PTR_ERR(folio);
if (folio_test_hwpoison(folio)) {
- r = -EHWPOISON;
- goto out_unlock;
+ folio_unlock(folio);
+ folio_put(folio);
+ return -EHWPOISON;
}
page = folio_file_page(folio, index);
@@ -579,7 +580,6 @@ static int __kvm_gmem_get_pfn(struct file *file, struct kvm_memory_slot *slot,
r = 0;
-out_unlock:
folio_unlock(folio);
return r;