From: Mark Harmstone Date: Thu, 31 Oct 2024 16:03:56 +0000 (+0000) Subject: btrfs: add struct io_btrfs_cmd as type for io_uring_cmd_to_pdu() X-Git-Tag: v6.13-rc1~213^2~14 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1cc86aeadafd667c381c588a84fdef2d5e8093a5;p=thirdparty%2Flinux.git btrfs: add struct io_btrfs_cmd as type for io_uring_cmd_to_pdu() 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 Signed-off-by: Mark Harmstone Reviewed-by: David Sterba Signed-off-by: David Sterba --- diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c index cf63264a3a60c..27a9342cd91c5 100644 --- a/fs/btrfs/ioctl.c +++ b/fs/btrfs/ioctl.c @@ -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); }