]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
btrfs: add struct io_btrfs_cmd as type for io_uring_cmd_to_pdu()
authorMark Harmstone <maharmstone@fb.com>
Thu, 31 Oct 2024 16:03:56 +0000 (16:03 +0000)
committerDavid Sterba <dsterba@suse.com>
Mon, 11 Nov 2024 13:34:21 +0000 (14:34 +0100)
Add struct io_btrfs_cmd as a wrapper type for io_uring_cmd_to_pdu(),
rather than using a raw pointer.

Suggested-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Mark Harmstone <maharmstone@fb.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/ioctl.c

index cf63264a3a60cf889c747058f94271f870b49c36..27a9342cd91c5f0943f16e56bee70f9816614634 100644 (file)
@@ -4740,9 +4740,14 @@ struct btrfs_uring_priv {
        bool compressed;
 };
 
+struct io_btrfs_cmd {
+       struct btrfs_uring_priv *priv;
+};
+
 static void btrfs_uring_read_finished(struct io_uring_cmd *cmd, unsigned int issue_flags)
 {
-       struct btrfs_uring_priv *priv = *io_uring_cmd_to_pdu(cmd, struct btrfs_uring_priv *);
+       struct io_btrfs_cmd *bc = io_uring_cmd_to_pdu(cmd, struct io_btrfs_cmd);
+       struct btrfs_uring_priv *priv = bc->priv;
        struct btrfs_inode *inode = BTRFS_I(file_inode(priv->iocb.ki_filp));
        struct extent_io_tree *io_tree = &inode->io_tree;
        unsigned long index;
@@ -4796,10 +4801,11 @@ out:
 void btrfs_uring_read_extent_endio(void *ctx, int err)
 {
        struct btrfs_uring_priv *priv = ctx;
+       struct io_btrfs_cmd *bc = io_uring_cmd_to_pdu(priv->cmd, struct io_btrfs_cmd);
 
        priv->err = err;
+       bc->priv = priv;
 
-       *io_uring_cmd_to_pdu(priv->cmd, struct btrfs_uring_priv *) = priv;
        io_uring_cmd_complete_in_task(priv->cmd, btrfs_uring_read_finished);
 }