struct io_btrfs_cmd *bc = io_uring_cmd_to_pdu(cmd, struct io_btrfs_cmd);
struct btrfs_uring_encoded_data *data = NULL;
- if (cmd->flags & IORING_URING_CMD_REISSUE)
- data = bc->data;
-
if (!capable(CAP_SYS_ADMIN)) {
ret = -EPERM;
goto out_acct;
ret = btrfs_encoded_read(&kiocb, &data->iter, &data->args, &cached_state,
&disk_bytenr, &disk_io_size);
- if (ret == -EAGAIN)
- goto out_free;
if (ret < 0 && ret != -EIOCBQUEUED)
goto out_free;
struct kiocb kiocb;
ssize_t ret;
void __user *sqe_addr;
- struct io_btrfs_cmd *bc = io_uring_cmd_to_pdu(cmd, struct io_btrfs_cmd);
struct btrfs_uring_encoded_data *data = NULL;
- if (cmd->flags & IORING_URING_CMD_REISSUE)
- data = bc->data;
-
if (!capable(CAP_SYS_ADMIN)) {
ret = -EPERM;
goto out_acct;
goto out_acct;
}
- bc->data = data;
-
if (issue_flags & IO_URING_F_COMPAT) {
#if defined(CONFIG_64BIT) && defined(CONFIG_COMPAT)
struct btrfs_ioctl_encoded_io_args_32 args32;
inc_syscw(current);
kfree(data);
- bc->data = NULL;
return ret;
}