]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
convert media_request_get_by_fd()
authorAl Viro <viro@zeniv.linux.org.uk>
Mon, 10 Jun 2024 03:07:41 +0000 (23:07 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Sun, 3 Nov 2024 06:28:07 +0000 (01:28 -0500)
the only thing done after fdput() (in failure cases) is a printk; safely
transposable with fdput()...

Reviewed-by: Christian Brauner <brauner@kernel.org>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
drivers/media/mc/mc-request.c

index e064914c476e7c907d2b0c1011349e9045a26b7f..df39c8c11e9a4d5d3113e14eb41fe53d16691540 100644 (file)
@@ -246,22 +246,21 @@ static const struct file_operations request_fops = {
 struct media_request *
 media_request_get_by_fd(struct media_device *mdev, int request_fd)
 {
-       struct fd f;
        struct media_request *req;
 
        if (!mdev || !mdev->ops ||
            !mdev->ops->req_validate || !mdev->ops->req_queue)
                return ERR_PTR(-EBADR);
 
-       f = fdget(request_fd);
-       if (!fd_file(f))
-               goto err_no_req_fd;
+       CLASS(fd, f)(request_fd);
+       if (fd_empty(f))
+               goto err;
 
        if (fd_file(f)->f_op != &request_fops)
-               goto err_fput;
+               goto err;
        req = fd_file(f)->private_data;
        if (req->mdev != mdev)
-               goto err_fput;
+               goto err;
 
        /*
         * Note: as long as someone has an open filehandle of the request,
@@ -272,14 +271,9 @@ media_request_get_by_fd(struct media_device *mdev, int request_fd)
         * before media_request_get() is called.
         */
        media_request_get(req);
-       fdput(f);
-
        return req;
 
-err_fput:
-       fdput(f);
-
-err_no_req_fd:
+err:
        dev_dbg(mdev->dev, "cannot find request_fd %d\n", request_fd);
        return ERR_PTR(-EINVAL);
 }