diff options
| author | Christian Brauner <brauner@kernel.org> | 2025-11-23 17:33:57 +0100 |
|---|---|---|
| committer | Christian Brauner <brauner@kernel.org> | 2025-11-28 12:42:35 +0100 |
| commit | c99dc44562728a568ebbfc3249d6b7d0e9f27165 (patch) | |
| tree | b91fc4f834f7dfd8a1a519df09dfde1bb5e0db1c /drivers | |
| parent | da7e394bf58f94e9783379fef7c7fb4411b03208 (diff) | |
| download | linux-c99dc44562728a568ebbfc3249d6b7d0e9f27165.tar.gz | |
hv: convert mshv_ioctl_create_partition() to FD_ADD()
Link: https://patch.msgid.link/20251123-work-fd-prepare-v4-39-b6efa1706cfd@kernel.org
Signed-off-by: Christian Brauner <brauner@kernel.org>
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/hv/mshv_root_main.c | 30 |
1 files changed, 6 insertions, 24 deletions
diff --git a/drivers/hv/mshv_root_main.c b/drivers/hv/mshv_root_main.c index e3b2bd417c4640..bed1a02425cd39 100644 --- a/drivers/hv/mshv_root_main.c +++ b/drivers/hv/mshv_root_main.c @@ -1870,8 +1870,6 @@ mshv_ioctl_create_partition(void __user *user_arg, struct device *module_dev) struct hv_partition_creation_properties creation_properties = {}; union hv_partition_isolation_properties isolation_properties = {}; struct mshv_partition *partition; - struct file *file; - int fd; long ret; if (copy_from_user(&args, user_arg, sizeof(args))) @@ -1938,29 +1936,13 @@ mshv_ioctl_create_partition(void __user *user_arg, struct device *module_dev) goto delete_partition; ret = mshv_init_async_handler(partition); - if (ret) - goto remove_partition; - - fd = get_unused_fd_flags(O_CLOEXEC); - if (fd < 0) { - ret = fd; - goto remove_partition; - } - - file = anon_inode_getfile("mshv_partition", &mshv_partition_fops, - partition, O_RDWR); - if (IS_ERR(file)) { - ret = PTR_ERR(file); - goto put_fd; + if (!ret) { + ret = FD_ADD(O_CLOEXEC, anon_inode_getfile("mshv_partition", + &mshv_partition_fops, + partition, O_RDWR)); + if (ret >= 0) + return ret; } - - fd_install(fd, file); - - return fd; - -put_fd: - put_unused_fd(fd); -remove_partition: remove_partition(partition); delete_partition: hv_call_delete_partition(partition->pt_id); |
