Use __anon_inode_getfd instead of opencoding the logic using
get_unused_fd_flags + anon_inode_getfile.

Signed-off-by: Christoph Hellwig <h...@lst.de>
---
 virt/kvm/kvm_main.c | 10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index 74bdb7bf32952..d20a7c2a30f1d 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -3822,17 +3822,11 @@ static int kvm_dev_ioctl_create_vm(unsigned long type)
        if (r < 0)
                goto put_kvm;
 #endif
-       r = get_unused_fd_flags(O_CLOEXEC);
+       r = __anon_inode_getfd("kvm-vm", &kvm_vm_fops, kvm, O_CLOEXEC | O_RDWR,
+                       &file);
        if (r < 0)
                goto put_kvm;
 
-       file = anon_inode_getfile("kvm-vm", &kvm_vm_fops, kvm, O_RDWR);
-       if (IS_ERR(file)) {
-               put_unused_fd(r);
-               r = PTR_ERR(file);
-               goto put_kvm;
-       }
-
        /*
         * Don't call kvm_put_kvm anymore at this point; file->f_op is
         * already set, with ->release() being kvm_vm_release().  In error
-- 
2.26.2

Reply via email to