Skip to content

Commit

Permalink
btrfs: add struct io_btrfs_cmd as type for io_uring_cmd_to_pdu()
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
maharmstone authored and kdave committed Nov 11, 2024
1 parent 34310c4 commit 1cc86ae
Showing 1 changed file with 8 additions and 2 deletions.
10 changes: 8 additions & 2 deletions fs/btrfs/ioctl.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -4796,10 +4801,11 @@ static void btrfs_uring_read_finished(struct io_uring_cmd *cmd, unsigned int iss
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);
}

Expand Down

0 comments on commit 1cc86ae

Please sign in to comment.