]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
pseries: convert papr_platform_dump_create_handle() to FD_ADD()
authorChristian Brauner <brauner@kernel.org>
Sun, 23 Nov 2025 16:33:53 +0000 (17:33 +0100)
committerChristian Brauner <brauner@kernel.org>
Fri, 28 Nov 2025 11:42:35 +0000 (12:42 +0100)
Link: https://patch.msgid.link/20251123-work-fd-prepare-v4-35-b6efa1706cfd@kernel.org
Signed-off-by: Christian Brauner <brauner@kernel.org>
arch/powerpc/platforms/pseries/papr-platform-dump.c

index f8d55eccdb6bf0b7f2edbb75b8d0357ae388c9ae..be633c9a0e75072bb829f9cb129e36fcb76c15e2 100644 (file)
@@ -303,8 +303,6 @@ static long papr_platform_dump_create_handle(u64 dump_tag)
 {
        struct ibm_platform_dump_params *params;
        u64 param_dump_tag;
-       struct file *file;
-       long err;
        int fd;
 
        /*
@@ -334,34 +332,22 @@ static long papr_platform_dump_create_handle(u64 dump_tag)
        params->dump_tag_lo = (u32)(dump_tag & 0x00000000ffffffffULL);
        params->status = RTAS_IBM_PLATFORM_DUMP_START;
 
-       fd = get_unused_fd_flags(O_RDONLY | O_CLOEXEC);
+       fd = FD_ADD(O_RDONLY | O_CLOEXEC,
+                   anon_inode_getfile_fmode("[papr-platform-dump]",
+                                            &papr_platform_dump_handle_ops,
+                                            (void *)params, O_RDONLY,
+                                            FMODE_LSEEK | FMODE_PREAD));
        if (fd < 0) {
-               err = fd;
-               goto free_area;
-       }
-
-       file = anon_inode_getfile_fmode("[papr-platform-dump]",
-                               &papr_platform_dump_handle_ops,
-                               (void *)params, O_RDONLY,
-                               FMODE_LSEEK | FMODE_PREAD);
-       if (IS_ERR(file)) {
-               err = PTR_ERR(file);
-               goto put_fd;
+               rtas_work_area_free(params->work_area);
+               kfree(params);
+               return fd;
        }
 
-       fd_install(fd, file);
-
        list_add(&params->list, &platform_dump_list);
 
        pr_info("%s (%d) initiated platform dump for dump tag %llu\n",
                current->comm, current->pid, dump_tag);
        return fd;
-put_fd:
-       put_unused_fd(fd);
-free_area:
-       rtas_work_area_free(params->work_area);
-       kfree(params);
-       return err;
 }
 
 /*